歡迎光臨
每天分享高質量文章

給 “rm” 命令新增個“垃圾桶” | Linux 中國

將檔案移動到“垃圾桶”是一個好主意,當你無意中執行 rm 命令時,可以拯救你
— 2daygeek


致謝
編譯自 | https://www.2daygeek.com/rm-command-to-move-files-to-trash-can-rm-alias/ 
 作者 | 2daygeek
 譯者 | amwps290 ? ? 共計翻譯:7 篇 貢獻時間:31 天

人類犯錯誤是因為我們不是一個可程式設計裝置,所以,在使用 rm 命令時要額外註意,不要在任何時候使用 rm -rf *。當你使用 rm 命令時,它會永久刪除檔案,不會像檔案管理器那樣將這些檔案移動到 “垃圾箱”。

有時我們會將不應該刪除的檔案刪除掉,所以當錯誤地刪除了檔案時該怎麼辦? 你必須看看恢復工具(Linux 中有很多資料恢復工具),但我們不知道是否能將它百分之百恢復,所以要如何解決這個問題?

我們最近發表了一篇關於 Trash-Cli[1] 的文章,在評論部分,我們從使用者 Eemil Lgz 那裡獲得了一個關於 saferm.sh[2] 指令碼的更新,它可以幫助我們將檔案移動到“垃圾箱”而不是永久刪除它們。

將檔案移動到“垃圾桶”是一個好主意,當你無意中執行 rm 命令時,可以拯救你;但是很少有人會說這是一個壞習慣,如果你不註意“垃圾桶”,它可能會在一定的時間內被檔案和檔案夾堆積起來。在這種情況下,我建議你按照你的意願去做一個定時任務。

這適用於伺服器和桌面兩種環境。 如果指令碼檢測到 GNOME 、KDE、Unity 或 LXDE 桌面環境(DE),則它將檔案或檔案夾安全地移動到預設垃圾箱 $HOME/.local/share/Trash/files,否則會在您的主目錄中建立垃圾箱檔案夾 $HOME/Trash

saferm.sh 指令碼託管在 Github 中,可以從倉庫中克隆,也可以建立一個名為 saferm.sh 的檔案並複製其上的程式碼。

  1. $ git clone https://github.com/lagerspetz/linux-stuff

  2. $ sudo mv linux-stuff/scripts/saferm.sh /bin

  3. $ rm -Rf linux-stuff

在 .bashrc 檔案中設定別名,

  1. alias rm=saferm.sh

執行下麵的命令使其生效,

  1. $ source ~/.bashrc

一切就緒,現在你可以執行 rm 命令,自動將檔案移動到”垃圾桶”,而不是永久刪除它們。

測試一下,我們將刪除一個名為 magi.txt 的檔案,命令列明確的提醒了 Moving magi.txt to $HOME/.local/share/Trash/file

  1. $ rm -rf magi.txt

  2. Moving magi.txt to /home/magi/.local/share/Trash/files

也可以透過 ls 命令或 trash-cli 進行驗證。

  1. $ ls -lh /home/magi/.local/share/Trash/files

  2. Permissions Size User Date Modified Name

  3. .rw-r--r-- 32 magi 11 Oct 16:24 magi.txt    

或者我們可以透過檔案管理器介面中檢視相同的內容。

![][3]

(LCTT 譯註:原文此處混淆了部分 trash-cli 的內容,考慮到文章銜接和邏輯,此處略。)

要瞭解 saferm.sh 的其他選項,請檢視幫助。

  1. $ saferm.sh -h

  2. This is saferm.sh 1.16. LXDE and Gnome3 detection.

  3. Will ask to unsafe-delete instead of cross-fs move. Allows unsafe (regular rm) delete (ignores trashinfo).

  4. Creates trash and trashinfo directories if they do not exist. Handles symbolic link deletion.

  5. Does not complain about different user any more.

  6. Usage: /path/to/saferm.sh [OPTIONS] [--] files and dirs to safely remove

  7. OPTIONS:

  8. -r      allows recursively removing directories.

  9. -f      Allow deleting special files (devices, ...).

  10. -u      Unsafe mode, bypass trash and delete files permanently.

  11. -v      Verbose, prints more messages. Default in this version.

  12. -q      Quiet mode. Opposite of verbose.


via: https://www.2daygeek.com/rm-command-to-move-files-to-trash-can-rm-alias/

作者:2DAYGEEK[4] 譯者:amwps290 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖