Kontrolowanie plików do wyświetlenia


10

Niedawno zmieniłem konfigurację emacs, aby ukryć pliki kopii zapasowych, przygotowując kropkę do nazwy pliku. To skłoniło mnie do myślenia - czy istnieje gotowy sposób na zmianę zachowania w Bash, aby użyć listy dowolnych globów dla jakich plików do ukrycia? Szybkie skanowanie stron podręcznika bash i ls nic nie pokazało.


Masz na myśli np. Czy lszignorowałeś wszystkie pliki zaczynające się od ignore-lub wszystkie pliki, które kończą się na .bak?
Kevin

Tak, najlepiej z możliwością dopasowania wzoru wieloznacznego, zignoruj ​​- *. Bak itp.
Tim Brigham

Odpowiedzi:


9

lsma --hide=PATTERNopcję, która wygląda tak, jak robi, co chcesz, i można ją przesłonić, aby pokazać je za pomocą -alub -A. Jeśli chcesz, aby stało się to automatycznie, dodaj alias do swojego ~/.bashrc(lub, w przypadku, gdy istnieje już alias, dodaj go do tego aliasu).

$ 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

Istnieje również opcja, --ignore=PATTERNktóra nie jest nadpisywana przez opcje -ai -A.


Dzięki za odpowiedź, mam tylko jedno pytanie: dlaczego nic ls --hide=*1 a*nie ukrywa, ale wciąż wymienia wszystkie trzy a-1 a-2 a-3? Spodziewałbym się, że to ukryje a-1?
sdaau

1
a*Jest rozszerzony przez powłokę i zawiera a-1. Opcja ukrywania nie ignoruje plików jawnie nazwanych jako argumenty.
Kevin

0

Oto mój pseudonim dla ls:

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

To ukrywa pliki takie jak backup.c~i #autosave.h#. (I, choć jestem przekonany, lubię kolory, więc to też robi.)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.