Как подавить сообщение об ошибке `ls`?

Как я могу отменить сообщения об ошибках с помощью команды bash ls?

Пример:

В пути только файлы JPG. Shell-Command (bash)

   ls *.zip

появляется сообщение об ошибке

Есть ли опция сообщения о недопустимости сообщения? Я хочу использовать эту команду в bash - script, и не хочу отображать это сообщение.

Ответ 1

ls выводится на stdout и stderr, поэтому вы можете использовать bash redirection, чтобы выбросить вывод ошибки.

ls *.zip 2>/dev/null

Ответ 2

$ ls *.zip 2>/dev/null

будет redirect любые сообщения об ошибках на stderr в /dev/null (т.е. вы их не увидите)

Обратите внимание, что возвращаемое значение (заданное $?) все равно будет отражать ошибку.

Ответ 3

Чтобы подавить сообщение об ошибке, а также вернуть статус завершения, добавьте значение || true, например:

$ ls *.zip && echo hello
ls: cannot access *.zip: No such file or directory
$ ls *.zip 2>/dev/null && echo hello
$ ls *.zip 2>/dev/null || true && echo hello
hello

$ touch x.zip
$ ls *.zip 2>/dev/null || true && echo hello
x.zip
hello