Touch

創建一個新文件並使用詳細開關

  • July 25, 2020

使用mkdir命令創建新目錄時,我可以簡單地添加 -v 選項來確定是否創建了新目錄。它節省了不發出ls -F命令的時間。有什麼方法可以確保使用該touch命令創建了一個新文件?或者我應該使用另一個命令而不是touch

這就是退出狀態的用途。

touch是更新文件時間戳的命令,或者如果該文件最初不存在則創建它。

如果它實現了該目標,它將在其退出狀態中返回*成功,否則失敗¹。*如果失敗,它通常會輸出一條關於它的錯誤消息,詳細說明失敗的方式。

if touch -- "$file"; then
 printf '%s\n' "$file was created or updated"
fi

在你的腳本中,如果你想確保如果touch沒有成功就不會繼續,你可以這樣寫:

touch -- "$file" || exit

(此處腳本將以與 報告的相同的失敗退出狀態退出touch)。

或者else exit在上面的if語句中添加一個。


¹touch也可能會報告失敗,即使它在某些病理情況下設法更新文件,例如它被殺死或耗盡某些資源。在大多數情況下,您的腳本可能會認為更新文件失敗

引用自:https://unix.stackexchange.com/questions/600255