linux 刪除暫存文件

linux 刪除暫存文件

我試圖使用該命令刪除以波形符結尾的文件rm *.*~,但這不會刪除以 a 開頭.並以 結尾的文件~,例如.somefile~。我也嘗試過rm *~,但這對於以..有人可以解釋為什麼嗎?

我想刪除所有以 結尾的文件~,無論它們是否以 a 開頭.(我試圖在沒有 find/exec 的情況下做到這一點)。那可能嗎?

答案1

以 a 開頭的檔案.預設隱藏,並且不會顯示在普通ls.因為您可能沒有見過它們,所以 shell 通常不會匹配這些文件,除非您手動包含它們。您可以按如下方式執行此操作:

rm *~ .*~

答案2

雖然上面的答案可能更安全(因為副作用更少),但為了完整性...

bash shell(大多數人在 Linux 上運行的)有一個標誌來指示是否在 glob 中包含點檔案。你用 來設定它shopt -s dotglob。下面的順序是設定標誌之前,然後是設定之後。請注意,一旦設定了 dotglob,rm 就會將其刪除。

$ touch .somefile~
$ rm *~
rm: cannot remove `*~': No such file or directory
$ ls -A
.somefile~
$ shopt -s dotglob
$ rm *~
$ ls -A
$

安全性稍差一點;理論上你可能會忘記是否已設定。但如果你想在任何地方都設置它,並且你對此保持一致,那麼它可能就是你想要的。

相關內容