Назад | Перейти на главную страницу

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

В --ignore вариант 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