Command-Line

找到並刪除使用者目錄中的所有臨時文件

  • July 3, 2017

我經常使用vim,我所在的地區經常斷電。所以結果是我得到許多*.swp文件分散在我的電腦上。

我想要一個命令的別名,它rm可以刪除系統範圍內*(或至少在我的主目錄中)*.swp具有、~、或副檔名的所有文件。該命令應該刪除文件系統範圍/主目錄,即使我在..netrwhist``.log``.bak``~/Desktop

我該如何實施?

這將刪除所有名稱以.swp~、或主目錄下任何位置.netrwhist結尾的文件。沒有提示,沒有確認,沒有恢復,文件永遠消失了。.log``.bak

find ~ -type f \( -name '*.swp' -o -name '*~' -o -name '*.bak' -o -name '.netrwhist' \) -delete

(我故意省略*.log,因為這聽起來很危險,這不是臨時文件的常見副檔名,並且有很多具有該名稱的非臨時文件。)

如果您的作業系統不是 Linux,請替換-delete-exec rm {} +.

directory你或許應該通過設置選項將 Vim 配置為將其交換文件放在一個目錄中:

set dir=~/tmp/vim-swap-files//,/var/tmp//

首先創建目錄。末尾的//使交換文件名包含原始文件的目錄位置,這樣不同目錄下的同名文件就不會導致崩潰。

backupdir您可以使用選項對備份文件執行相同的操作,儘管它的意義要小得多。

如果您使用 Emacs,請將auto-save-file-name-transforms每個文件設置為指向單個目錄。

(setq auto-save-file-name-transforms
     '("\\`.*\\'" "~/tmp/emacs-auto-save-files/\\&" t))

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