為防止誤刪文件,可以使用垃圾桶。為確保多個應用程式之間的兼容性,可以使用遵循 FreeDesktop.org's Trash specification 的軟體(CLI、GUI 或庫)。
注意:某些應用程式可以在每個文件系統中使用一個垃圾桶(請參閱規範)。
警告:刪除其他文件系統上的文件時,由於文件會在文件系統之間傳輸,因此使用垃圾桶可能會導致一些延遲。在這種情況下,你可能需要為每個文件系統創建一個垃圾文件夾(參見規範中的
Trash directories
)。創建垃圾桶
一些 GUI 文件管理器,如 GNOME Files 和 Dolphin 本身就支持將文件移入垃圾桶。還有一些 CLI 工具:
-
glib2包 提供了一條
gio trash file...
命令,用於將文件移入垃圾桶,而gio trash --empty
則會清空垃圾桶。另請參見 gio(1) § COMMANDS 中的 "trash"。要通過gio trash
命令完全支持垃圾管理,需要安裝 gvfs包 軟體包。 -
kde-cli-tools包 提供了一條
kioclient5
命令,可以使用kioclient5 move file trash:/
將file
移至垃圾桶。 - trash-cli — 實現 FreeDesktop.org's Trash specification 的命令行界面。
- trashman — 一個 Python 垃圾管理器。
- rmtrash — trash-put 與 GNUs rm 和 rmdir 兼容。
- trash-d — GNU rm 的直接替代品,注重兼容性,性能更好,用 D 語言編寫。
- trashy — 用 rust 寫成的 rm 和 trash-cli 簡單、快速、功能豐富的替代品
- gtrash — 用 Go 編寫的功能豐富的 CLI 垃圾管理器
- rmw(ReMove to Waste) — 一個可配置的 CLI 垃圾管理工具,可在 X 天后清除垃圾,並與 FreeDesktop.org's Trash specification 集成,用 C 語言編寫
垃圾空間使用管理
為了防止垃圾桶占用過多空間,您可以自己清空垃圾桶,或者制定清理政策
軟體列表
- autotrash — 自動清除舊垃圾文件的工具
標準
- 確保至少有 x MB 的可用空間
- 刪除超過 x 天的文件
- 只有當可用空間小於 x MB 時才會清空(結合前面的標準很有用)
- 垃圾桶最大大小
- 文件大小
- 文件類型
- 原始路徑
自動化
要自動清空垃圾桶,可以使用 cron、systemd/Timers 或 inotify(使用 inotify,只有新的刪除才會觸發垃圾桶自動清空)。
問題解決
無法找到或創建垃圾目錄
外置硬碟
/etc/fstab
可能未正確設置。請注意,ID
必須用自己的用戶 ID 替換通過 $ id
。
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=75667752-8b06-11ea-bc55-0242ac130003 /externalDrive ntfs-3g defaults,uid=ID 0 1
確保驅動器根目錄包含 ~/.Trash-1000/{expunged,files,info
並為該目錄和子目錄設置相關讀取權限。