Почему 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
Параметр - игнорировать
в 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