現在的作業系統對於 “將檔案、目錄「丟進回收筒」” 這個命令,增加了一些保障。當看到檔案、目錄從原來的地方消失了,並不是立即被刪除了,而是『暫時』搬到「回收筒(Trash)」。使用者接下來可能的做法有:
這些操作在「圖形化桌面」中很方便,在「回收筒」按「滑鼠右鍵」會出現「開啟回收筒」或「清理回收筒」的選項,接著就依畫面指示操作,很是方便。但是,
當透過「(遠端)終端機」操作 Linux 系統時,如何以『文字命令』執行上述「還原」、「清空」的動作呢?
1.「回收筒」的檔案結構及原理
在說明這些指令前,先說明 Linux 中「回收筒」的檔案結構及原理:當使用者下達 “將檔案、目錄「丟進回收筒」” 這個操作後,
- 這些檔案、目錄即被搬移到使用者「家目錄」下的隱藏目錄『~/.local/share/Trash/files』內,
- 而這個檔案、目錄的「刪除」(其實是「搬移」)記錄,則放在『~/.local/share/Trash/info』之下
當使用者下「還原」或「清空」命令時,
- 還原:檔案、目錄依之前的「搬移」記錄,搬回原地,再清除記錄。
- 清空:刪除檔案、目錄及之前的「搬移」記錄,徹底刪除。
2. 從「(遠端) 終端機」還原或清空「回收筒」的檔案、目錄
既然知道「回收筒」的原理和檔案暫存位置,就可以將之取回。
[SiB@Fedora ~]$ mv ~/.local/share/Trash/files/File_back.txt ~/temp
a.「還原」檔案、目錄
要完全「還原」到「未刪除」前狀態,除了要將檔案、目錄搬回原位置外,還要將「刪除」記錄清除。
[SiB@Fedora ~]$ mv ~/.local/share/Trash/files/File_back.txt ~/temp
如果不確定「被刪除」檔案的原位址,可以查詢之前的「刪除」記錄
[SiB@Fedora ~]$ cat ~/.local/share/Trash/info/File_back.txt.trashinfo
[Trash Info]
Path=/home/SiB/temp/File_back.txt
DeletionDate=2012-12-02T16:35:55
「被刪除」的檔案搬回原位後,「刪除」記錄也可以刪除了
[SiB@Fedora ~]$ rm ~/.local/share/Trash/info/File_back.txt.trashinfo
b.「清空」檔案、目錄
這個操作簡單多了,把「被刪除」的檔案和「刪除」記錄都刪除。
[SiB@Fedora ~]$ rm -rf ~/.local/share/Trash/files/*
[SiB@Fedora ~]$ rm -rf ~/.local/share/Trash/info/*
這兩個命令會將「回收筒」內的檔案,永久刪除無法再還原。
3. 從「(遠端)終端機」操作「丟進回收筒」及還原
讀者應該會發現到:在「(遠端)終端機」中下「刪除」命令,被「刪除」的檔案、目錄用上一個步驟的方法不能還原。原因是「刪除」指令 (rm …) 並不會將這些「被刪除」的檔案、目錄搬到「回收筒」暫存。
a. 安裝 trash-cli 套件
想要能全面預防誤刪檔案、目錄,需再補安裝一個套件「trash-cli」才行。
[root@Fedora ~]# dnf install trash-cli
b. 使用 trash-cli 套件
安裝 trash-cli 後,提供幾個方便的指令
trash-put | : |
刪除指定的檔案或目錄,相當於「丟進回收筒」。 |
trash-list | : |
顯示「回收筒」的內容,相當於「查看回收筒」。 |
trash-rm | : |
從「回收筒」中刪除單一檔案或目錄,相當於永久刪除該檔案。 |
trash-empty | : |
從「回收筒」中刪除所有檔案和目錄,相當於「清理回收筒」。 |
restore-trash | : |
從「回收筒」還原指定的檔案或目錄,若未指定檔案或目錄名則會列出「回收筒」內的所有檔案並編號,再指定編號刪除特定檔案。 |
已測試版本:
參考資料:
- Ask Ubuntu, "How can I empty the trash using terminal?," May 18, 2014 [Aug. 12, 2016].
- Ask Ubuntu, "Command to move a file to Trash via Terminal," Nov. 6, 2012 [Aug. 12, 2016].
- Web UDP8, "MAKE "RM" MOVE FILES TO TRASH INSTEAD OF COMPLETELY REMOVING THEM," Apr. 18, 2012 [Aug. 12, 2016].
- Ask Ubuntu, "How to Send Files to Trash from the Linux Command Line," May 9, 2020 [Apr. 26, 2025].
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)