Как игнорировать ошибку Нет такой файловой директории в команде ls? - PullRequest
0 голосов
/ 14 июля 2020

Как игнорировать ошибку No such file directory?

ls /opt/data/config/run_*.config | cut -f1 -d '.' | cut -f2 -d '_' 2>/dev/null
ls: cannot access /opt/data/config/run_*.config: No such file or directory

1 Ответ

1 голос
/ 14 июля 2020

Вы делаете следующее:

ls <something> | cut <some_cut> | cut <some_other_cut> 2>/dev/null

Это выполнит ls, первое и второе cut, и когда ошибка будет сгенерирована на втором cut, он будет быть отправлено на устройство null (что означает, что оно будет удалено).

Если вы хотите удалить сообщение об ошибке из любой команды, вам нужно поместить его сразу после соответствующей команды, чтобы вы получили три case:

Case 1: ls <something> | cut <some_cut> | cut <some_other_cut> 2>/dev/null
Case 2: ls <something> 2>/dev/null | cut <some_cut> | cut <some_other_cut>
Case 3: ls <something> 2>/dev/null | cut <some_cut> 2>/dev/null | cut <some_other_cut> 2>/dev/null

Случай 1 - это ситуация, в которой вы сейчас оказались. Варианты 2 и 3 являются возможными решениями: вариант 2 удаляет только сообщения об ошибках из команды ls, а вариант 3 удаляет сообщения об ошибках из каждой команды.

...