我在BASH腳本中使用rm
來刪除許多文件。有時文件不存在,所以報告很多錯誤。我不需要這個消息。我在手冊頁上搜索了一個使rm
安靜的命令,但我發現的唯一選擇是-f
,它從描述中「忽略不存在的文件,從不提示」似乎是正確的選擇,但名稱似乎不是以適應,所以我擔心它可能會產生意想不到的後果。如何防止rm報告沒有找到文件?
- 是
-f
選項正確的沉默方式rm
?爲什麼不叫-q
? - 此選項是否還有其他功能?
我在BASH腳本中使用rm
來刪除許多文件。有時文件不存在,所以報告很多錯誤。我不需要這個消息。我在手冊頁上搜索了一個使rm
安靜的命令,但我發現的唯一選擇是-f
,它從描述中「忽略不存在的文件,從不提示」似乎是正確的選擇,但名稱似乎不是以適應,所以我擔心它可能會產生意想不到的後果。如何防止rm報告沒有找到文件?
-f
選項正確的沉默方式rm
?爲什麼不叫-q
?的主要用途是-f
本身強制刪除使用rm
將 不會被刪除的文件(作爲一種特殊情況,它「刪除」 不存在的文件,因此抑制了錯誤消息)。
你也可以使用重定向
$ rm file.txt 2> /dev/null
(或操作系統的等同物)的錯誤信息。您可以在撥打rm
後立即檢查$?
的值,看看文件是否真的被刪除。
'--f'對GNU Coreutils'rm'有效,但僅僅是因爲它恰好是'--force'的唯一縮寫。簡寫形式'-f'更清晰,更便攜。 – 2014-05-28 18:09:05
不知道我甚至意識到這一點。 '--f'這裏只是'-f'的拼寫錯誤。 – chepner 2014-05-28 18:27:05
你沒有修復錯字的任何原因?我要修復它... – iconoclast 2014-06-17 19:23:23
至於rm -f
做「任何東西」,它力(-f
是--force
簡寫)的情況下,靜默式刪除其中rm
否則將要求您進行確認。例如,試圖從您可寫入的目錄中刪除不可由您寫入的文件。
我對cshell有同樣的問題。我唯一的解決方案是創建一個與我的腳本中的「rm」之前的模式相匹配的虛擬文件。
這真的是唯一的解決方案嗎?你嘗試過'rm -f'還是'rm filename>&/ dev/null'? – 2014-05-28 18:09:40
您不想使用-f,它將刪除標記爲只讀的文件。 – pizza 2012-04-20 21:29:10