Controlando quais arquivos exibir


10

Recentemente, mudei minha configuração do emacs para ocultar arquivos de backup colocando um ponto no nome do arquivo. Isso me levou a pensar - existe uma maneira pronta de alterar o comportamento no Bash para usar uma lista de globs arbitrários para quais arquivos ocultar? Uma rápida varredura das páginas de manual bash e sl não revelou nada.


Você quer dizer, por exemplo, lsignorar todos os arquivos iniciados ignore-ou todos os que terminam em .bak?
22411 Kevin

Sim, de preferência com a capacidade de fazer a correspondência de padrões curinga também, ignorar - *. Bak, etc #
Tim Brigham

Respostas:


9

lstem uma --hide=PATTERNopção que parece fazer o que você deseja e pode ser substituída para mostrar a eles com -aou -A. Se você deseja que isso aconteça automaticamente, adicione um alias no seu ~/.bashrc(ou, no caso provável de já haver um alias para ele, adicione-o a esse 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

Há também um --ignore=PATTERNque não é substituído pelas opções -ae -A.


Obrigado pela resposta, tenho apenas uma pergunta: por que ls --hide=*1 a*não oculta nada, mas ainda lista todas as três a-1 a-2 a-3? Eu esperava que ele escondesse o a-1?
Sdaau # 11/14

1
O a*é expandido pelo shell e inclui a-1. A opção ocultar não ignora arquivos explicitamente nomeados como argumentos.
Kevin

0

Aqui está o meu apelido para ls:

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

Isso oculta arquivos como backup.c~e #autosave.h#. (E, por mais que eu sou, gosto de cores, também o faz.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.