Controlar qué archivos mostrar


10

Recientemente cambié mi configuración de emacs para ocultar archivos de copia de seguridad al anteponer un punto al nombre del archivo. Esto me hizo pensar: ¿hay una manera lista de cambiar el comportamiento dentro de Bash para usar una lista de globos arbitrarios para qué archivos ocultar? Un escaneo rápido de las páginas de bash y ls man no mostró nada.


¿Quiere decir, por ejemplo, haber lsignorado todos los archivos que comienzan con ignore-o todos los archivos que terminan en .bak?
Kevin

Sí, preferiblemente con la capacidad de hacer coincidir patrones comodín también, ignorar - *. Bak, etc.
Tim Brigham

Respuestas:


9

lstiene una --hide=PATTERNopción que parece que hace lo que desea y puede anularse para mostrarlos con -ao -A. Si desea que esto suceda automáticamente, agregue un alias en su ~/.bashrc(o, en el caso probable de que ya haya un alias, agréguelo a ese alias).

$ touch {a,b,c}-{1,2,3}
$ ls
a-1  a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=a*
b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=*1
a-2  a-3  b-2  b-3  c-2  c-3
$ ls --hide=a*1
a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3
$ ls --hide=a*1 -A
a-1  a-2  a-3  b-1  b-2  b-3  c-1  c-2  c-3

También hay una --ignore=PATTERNque no está anulada por las opciones -ay -A.


Gracias por la respuesta, solo tengo una pregunta: ¿por qué ls --hide=*1 a*no oculta nada, sino que enumera los tres a-1 a-2 a-3? Hubiera esperado que ocultara el a-1?
sdaau

1
El a*shell lo expande e incluye a-1. La opción ocultar no ignora los archivos nombrados explícitamente como argumentos.
Kevin

0

Aquí está mi alias para ls:

alias ls="ls --color=auto --hide='*~' --hide='#*#'"

Eso oculta archivos como backup.c~y #autosave.h#. (Y, como soy obstinado, me gustan los colores, así que también lo hace).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.