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

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

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

$ ls -1
file1
file2
file3
temp

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

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

4 ответа

ls -I <filename>

-I = Игнорируют имя файла, т.е. не перечисляют указанный файл.

Для игнорирования больше чем одного файла добавляют -I перед каждым именем файла.

ls -I file1 -I file2

Для игнорирования файлов их расширениями имени делают следующее, например.

ls -I "*.jpg" -I "*.svg"
82
ответ дан 16 November 2019 в 10:11

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

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

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

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

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

18
ответ дан 16 November 2019 в 10:11

ls --ignore={"*.jpg","*.png","*.svg"}

6
ответ дан 16 November 2019 в 10:11

Я думаю, что это производит вывод, который Вы ищете:

ls -1 !(temp)

По-видимому, Вам нужно shopt -s extglob чтобы это работал
(Мне включили его, таким образом, я предполагаю некоторое время в удаленном прошлом, я нашел это полезным и включил его).

Я предполагаю, что Вы могли также использовать grep для фильтрации вывода:

ls -1 | grep -v '^temp$'

Используя канал и фильтры обеспечивает намного больше гибкости и навыков, которые передаваемы к другим командам/ситуациям, хотя Вы не могли бы интересоваться этим для этого конкретного случая.

1
ответ дан 22 November 2019 в 23:37

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

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