Как заставить кошку ничего не печатать, если папка пуста
Я работаю над bash, и мне поручено распечатать все файлы в последней измененной подпапке, и я могу использовать только одну строку команд. Вот что у меня так далеко:
cat "$( ls -t | head -1)"/*.*
Это работает правильно, за исключением случаев, когда последняя измененная папка пуста, и в этом случае cat возвращает ошибку. Мне нужно избегать этого и заставить кота ничего не распечатывать.
2 ответа
Рассмотрите возможность перенаправления стандартной ошибки на /dev/null
, Это приведет к тому, что любые сообщения об ошибках, которые генерирует команда, будут отправлены куда-то, кроме стандартного. Если твой cat
выдает ошибку, сообщение будет отправлено куда-то еще, /dev/null
игнорировать его или какой-либо файл, если вы хотите войти. Ваша команда будет выглядеть примерно так:
cat "$( ls -t | head -1)"/*.* 2> /dev/null
2
представляет стандартную ошибку, так 2>
направляет его в место, указанное после.
2>/dev/null Это перенаправление ошибок перенаправит все сообщения об ошибках в дамп, который не может быть восстановлен,
используйте команду 2>/dev/null