исключить определенные файлы в ls

Я хотел бы запустить ls и исключить определенные файлы на выходе.

Когда я запускаю следующую команду, я получаю все файлы с каждой в одной строке:

$ ls -1
file1
file2
file3
temp

] Я хотел бы запустить эту команду таким образом, чтобы она показывала

$ ls -1 <insert magic here> temp
file1
file2
file3
1
задан 18 August 2014 в 19:54

2 ответа

Для меня, если я использую -I один раз, он работает, но если я использую дважды, это не так. Например, ls -I *.csv работает.

Но ls -I *.csv -I *.txt не работает и возвращает файлы txt.

- игнорировать сделал трюк для меня. Это было то, что мне было нужно и сработало.

ls -lhrt --ignore="*.gz" --ignore="*.1"

Это будет перечислять файлы из папки журнала, где они исключают старые журналы резервного копирования.

13
ответ дан 24 May 2018 в 04:32
  • 1
    цитирование * .csv в первой форме работает, например, ls -I '*.txt'. Причина, по которой он не работает без кавычек, - это расширение оболочки, т. Е. Вы сообщаете оболочке перечислить все файлы csv, а не исключать их. На самом деле происходит то, что он игнорирует первые .csv и .1 файлы после расширения, но перечисляет остатки – verboze 29 December 2015 в 09:40
  • 2
    Двойное цитирование сработало и для меня. Благодаря @verboze – user38537 29 September 2016 в 23:41
ls --ignore={"*.jpg","*.png","*.svg"}

1
ответ дан 24 May 2018 в 04:32
  • 1
    Это просто использует расширение brach для получения трех опций --ignore. Вы могли бы также использовать --ignore="*."{jpg,png,svg} – muru 14 February 2017 в 04:27

Другие вопросы по тегам:

Похожие вопросы: