Shell
當源文件不存在時如何讓’cp’命令不觸發錯誤?
我正在使用 Mac OS X。我正在嘗試使用 cp 命令為這樣的建構腳本複制一些文件。
cp ./src/*/*.h ./aaa
但是,如果 ./src 目錄中沒有 .h 文件,則此命令會引發錯誤。如何使命令不觸發錯誤?(靜默失敗)錯誤使建構結果失敗,但我只想在只有一些標頭檔時複製。
如果您正在談論錯誤消息,您可以通過將其發送到位桶來抑制它:
cp ./src/*/*.h ./aaa 2>/dev/null
如果要禁止退出程式碼和錯誤消息:
cp ./src/*/*.h ./aaa 2>/dev/null || :
你正在尋找類似的東西
if [ -e file ] then cp file /somewhere fi
(不幸的是,這個
-f
選項不是你要找的機器人。)如果你想匹配一個 glob,那是行不通的;改為使用
find
,例如:find ./src -name \*.h -exec cp {} ./destination \;