網管技術
http://www.cnblogs.com/edwardcmh/archive/2013/05/31/3110870.html
為rm增加回收站功能&用trash-cli避免誤刪Linux文件
我的上篇博文提到用extundelete恢復在Linux中誤刪的文件,本著防範於未然的態度,最好為rm找一劑後悔藥,trash-cli可以完美滿足這個需求。
廢話不多說,使用yum install直接安裝trash-cli,但是RHEL提示沒有這個包,索性直接去github下載trash-cli的源代碼安裝:
1 2 3 |
[root@bogon edward]# unzip trash-cli-master.zip [root@bogon edward]# cd trash-cli-master/ [root@bogon edward]# python setup.py install --record install.txt |
安裝很簡單,不過trash-cli需要依賴python包,RHEL默認安裝時自帶了,如果沒有的話用yum install python*安裝就行了。雖然可以直接用命令行python setup.py install進行安裝,但是setup.py沒有uninstall選項,無法直接卸載,於是將安裝中創建的文件記錄在install.txt中,今後如果需要刪除的話也會方便很多。
trash-cli安裝完成後可以直接使用trash-put將文件放入回收站,為了兼容使用習慣,用shell腳本改寫rm命令為trash-put就行了,編輯.bashrc加入:
1 2 3 |
alias rm!="/bin/rm -vi" alias rm=trash alias lstrash=trash-list |
trash和trash-put貌似是一樣的,因此用哪個關聯rm都行,如果不經過回收站直接刪除文件輸入rm!命令就可以了,lstrash是為了方便列出回收站中的文件,每個文件都有刪除日期和原路徑,並且完全兼容圖形界面的回收站。trash-cli中的所有命令:
1 2 3 4 5 6 7 |
[root@bogon bin]# ll | grep trash -rwxr-xr-x 1 root root 127 5月 31 15:54 restore-trash -rwxr-xr-x 1 root root 123 5月 31 15:54 trash -rwxr-xr-x 1 root root 125 5月 31 15:54 trash-empty -rwxr-xr-x 1 root root 124 5月 31 15:54 trash-list -rwxr-xr-x 1 root root 123 5月 31 15:54 trash-put -rwxr-xr-x 1 root root 122 5月 31 15:54 trash-rm |
經過測試,trash支持遞歸刪除目錄,也就是實現rm -r的功能。使用restore-trash恢復回收站文件,終端會顯示出回收站中的文件和編號,輸入要還原的文件編號即可恢復,使用trash-empty清空回收站文件,無提示直接清空。命令說明可以使用參數--help查看。
ps:RHEL6中的回收站路徑:
1 |
$HOME/.local/share/Trash |
其中files目錄保存已刪除的文件,info目錄保存已刪除文件的信息。
ps:卸載python安裝的軟件包:
1 2 |
python setup.py install --record install.txt # 安装时 cat install.txt | xargs rm -rf # 卸载时 |
務必在程序源代碼目錄保留install.txt文件,才能使用上述命令卸載。
google還找出了一個作者編寫用於Mac OS X上取代rm的腳本:原文鏈接
項目主頁:https://gitcafe.com/bachue/rm-trash
參考資料(感謝原作者分享):