ls * .csv --ignore = «* шаблон *» возвращает файлы, содержащие «шаблон»

Почему ls --ignore не игнорирует шаблон?

Рассмотрим пример ниже:

mkdir books
cd books
touch books_abby.csv
touch books_karen.csv
touch books_david.csv
touch books_tom.csv

Это создает четыре файла:

$ ls
books_abby.csv  books_david.csv  books_karen.csv  books_tom.csv

Если однако вы хотите проигнорировать все имена файлов, содержащие «tom», и перечислить их, books_tom.csv по-прежнему возвращается:

$ ls *.csv --ignore="*tom*"
books_abby.csv  books_david.csv  books_karen.csv  books_tom.csv

Ожидаемый результат - файлы, содержащие «tom», будут опущены:

$ ls *.csv --ignore="*tom*"
books_abby.csv  books_david.csv  books_karen.csv
0
задан 29 October 2017 в 11:15
1 ответ

Параметр - игнорировать в ls кажется нормальным и работает, но проблема возникает, когда вы смешиваете его с * .csv в той же команде ls .

Таким образом, вы можете получить тот же результат, используя (поскольку все ваши файлы заканчиваются на .csv):

$ ls *.csv --ignore="*tom*"
books_abby.csv  books_david.csv  books_karen.csv

Если у вас есть другие расширения файлов которые вы не хотите отображать в выводе, вы можете попробовать:

$ ls !(*tom*).csv
books_abby.csv  books_david.csv  books_karen.csv
0
ответ дан 5 December 2019 в 07:17

Теги

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