Controllo dei file da visualizzare


10

Di recente ho modificato la mia configurazione di emacs per nascondere i file di backup anteponendo un punto al nome del file. Questo mi ha fatto pensare: esiste un modo pronto per cambiare il comportamento all'interno di Bash per utilizzare un elenco di globi arbitrari per quali file nascondere? Una rapida scansione delle pagine man di bash e ls non ha prodotto nulla.


Intendi, ad esempio, hai lsignorato tutti i file che iniziano con ignore-o tutti i file che finiscono .bak?
Kevin,

Sì, preferibilmente con la possibilità di eseguire anche la corrispondenza dei caratteri jolly, ignora - *. Bak, ecc.
Tim Brigham,

Risposte:


9

lsha --hide=PATTERNun'opzione che sembra fare quello che vuoi e può essere sovrascritto per mostrarli con -ao -A. Se vuoi che ciò accada automaticamente, aggiungi un alias nel tuo ~/.bashrc(o, nel caso probabile che esista già un alias, aggiungilo a quell'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

C'è anche un --ignore=PATTERNnon sovrascritto dalle opzioni -ae -A.


Grazie per la risposta, ho solo una domanda: perché ls --hide=*1 a*non nascondere nulla, ma elenca ancora tutti e tre a-1 a-2 a-3? Mi sarei aspettato che nascondesse il a-1?
sdaau,

1
Il a*è espanso dalla shell e comprende a-1. L'opzione hide non ignora i file esplicitamente nominati come argomenti.
Kevin,

0

Ecco il mio alias per ls:

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

Che nasconde file come backup.c~e #autosave.h#. (E, supponente come sono, mi piacciono i colori, quindi anche quello.)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.