Как сделать команду cp тихой, если в BASH не найден файл?

Я искал map cp, но не могу найти тихую опцию, поэтому cp не сообщает "Нет такого файла или каталога". Как я могу заставить cp не печатать эту ошибку, если она пытается, но не может скопировать файл?

21 голос | спросил Village 16 AM000000100000004331 2014, 10:00:43

6 ответов


0

Ну, все предположили, что перенаправление на /dev/null не позволит вам увидеть ошибку, но здесь есть другой способ. Проверьте, существует ли файл, и если он существует, выполните команду cp.

[[ -e f.txt ]] && cp f.txt ff.txt

В этом случае, если первый тест не пройден, cp никогда не будет запущен и, следовательно, не будет ошибки.

ответил jaypal singh 16 AM000000100000005631 2014, 10:07:56
0

Если вы хотите подавить только сообщения об ошибках:

 cp original.txt copy.txt 2>/dev/null

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

cp original.txt copy.txt 2>/dev/null || :
ответил askmish 16 AM000000100000002731 2014, 10:11:27
0

Общим решением является перенаправление stderr в битовую корзину:

 cp old_file new_file 2>>/dev/null

Это позволит скрыть любые ошибки в вашем скрипте, что означает, что он молча завершится ошибкой при различных обстоятельствах. Я использую >> вместо > в перенаправить на случай, если вместо этого потребуется использовать файл журнала.

ответил rici 16 AM000000100000002031 2014, 10:03:20
0

Как и для любой ошибки, напечатанной в STDERR , просто перенаправьте ее /dev/null:

cp a b 2> /dev/null
ответил sschuberth 16 AM000000100000001931 2014, 10:03:19
0

Перенаправление:

cp ... 2>/dev/null
ответил konsolebox 16 AM000000100000003631 2014, 10:03:36
0
rsync -avzh --ignore-missing-args /path/to/source /path/to/destination

ignore-missing-args - игнорируются ошибки, связанные с несуществующими исходными файлами

ответил Upen 17 62018vEurope/Moscow11bEurope/MoscowSat, 17 Nov 2018 03:46:58 +0300 2018, 03:46:58

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132