3 votos

Terminal: Expandir lista de atajo de nombre de archivo similar

Recuerdo la lectura de un truco en un stackoverflow comentario en alguna parte para obtener una lista de nombres de archivos en el terminal, pero no puedo recordar exactamente.

Si usted tiene un montón de archivos como:

foo-a.txt
foo-b.txt
foo-c.txt

Hay un truco que va a lo largo de las líneas de:

  1. tipo cat foo-*
  2. Presione algo como tab, backspace, esc (esto no funciona, pero es el paso que quiero saber)
  3. La línea de comandos debe tener ahora cat foo-a foo-b foo-c

Se nota que es diferente a la ficha básica de finalización que muestra una lista de nombres de archivos a continuación el comando. Esto va a poner todos los nombres de archivo en el comando de entrada de modo que pulsando la tecla "enter", se ejecutarán gato con todos los archivos.

¿Alguien puede aclararme?

6voto

Burnaby Puntos 57
  1. Tipo cat foo-*
  2. Presione Ctrl+X , a continuación, * (asterisco - Shift+8 en un teclado americano) para ampliar el pegote
    • Ese es el valor predeterminado de acceso directo. Si no funciona, compruebe bind -p | grep glob-expand-word a ver si se establece como valor predeterminado: "\C-x*": glob-expand-word. Si no, se puede establecer con bind '"\C-x*": glob-expand-word'.
  3. La línea de comandos debe ahora ser cat foo-a.txt foo-b.txt foo-c.txt

glob-expand-word vs insert-completions

OP respuesta es acerca de la insert-completions (Esc, *), que es similar pero diferente a glob-expand-word. glob-expand-word expande nombre de archivo globs. insert-completions inserta todas las posibles terminaciones que presionar la tecla Tab mostraría.

Lo que significa que también se puede utilizar para cosas además de los nombres de archivo, como opciones. Por ejemplo, escriba ls --f, pulse Esc, *, y obtendrá ls --file-type --format=, aunque no estoy seguro de lo bien que lo hace...

Y eso significa que se comporta de manera diferente cuando la expansión de los nombres de archivo o globs. Por ejemplo, si escribe cat foo-* y pulse Esc, *, se expandirá a sólo el primer término: cat foo-a.txt.

3voto

mdsimmo Puntos 48

He encontrado el comentario original aquí . (¿Puede alguien con más puntos votar por él?: P)

La secuencia es:

  • Tipo cat foo-
  • Presione esc
  • Presione * (asterisco)

La misma secuencia parece funcionar con cualquier programa (no solo cat )

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: