Контроль файлів для відображення


10

Нещодавно я змінив конфігурацію emacs, щоб приховати файли резервного копіювання, додавши крапку до імені файлу. Це наштовхнуло мене на думку - чи є готовий спосіб змінити поведінку в Bash, щоб використовувати список довільних глобусів для того, які файли ховати? Швидке сканування сторінок bash та ls man нічого не відобразило.


Ви маєте на увазі, наприклад, lsігнорували всі файли, які починаються ignore-або всі файли, які закінчуються .bak?
Кевін

Так, бажано, маючи можливість також узгоджувати шаблони підстановки, ігноруйте - *. Bak, тощо
Тім Брігхем

Відповіді:


9

lsє --hide=PATTERNваріант, схожий на те, що він робить все, що ви хочете, і може бути відмінений, щоб показати їх за допомогою -aабо -A. Якщо ви хочете, щоб це сталося автоматично, додайте псевдонім у свій ~/.bashrc(або, швидше за все, для нього вже є псевдонім, додайте його до цього псевдоніма).

$ 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

Існує також і --ignore=PATTERNте, що не змінюється параметрами -aта -Aпараметрами.


Дякую за відповідь, у мене є лише одне питання: чому нічого ls --hide=*1 a*не приховує, але все ж перераховує всі три a-1 a-2 a-3? Я б очікував, що це приховатиме a-1?
sdaau

1
a*Розширюється за рахунок оболонки і включає в себе a-1. Параметр приховання не ігнорує файли, явно названі як аргументи.
Кевін

0

Ось мій псевдонім для ls:

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

Це приховує файли, як backup.c~і #autosave.h#. (І, переконаний, як і я, мені подобаються кольори, так це і робиться.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.