O sinalizador é descrito na página ls
man como
do not list implied entries matching shell PATTERN
Assim que você nomear explicitamente um arquivo ou um padrão correspondente a um arquivo, o arquivo não estará mais implícito, por definição. No seu exemplo, books_tom.csv
é explicitamente referenciado por meio do padrão de correspondência *.csv
. Com ls --ignore="*tom*"
, no entanto, todos os arquivos no diretório estão implícitos, portanto, books_tom.csv
não será mais exibido.
Se você tiver o alargado de globbing disponível no seu shell (com o bash você pode ativar com shopt -s extglob
) você pode conseguir o que você deseja criando um padrão que excluirá 'tom'. Por exemplo, ls books_!(tom).csv
mostraria books_abby.csv
, mas não books_tom.csv
.
(É claro, você pode usar outras ferramentas como find
, pipe para grep -v
, etc ... Estou explicando como fazer isso apenas com ls
.)