Linux將rm命令設置為回收站【轉】


一個方案就是重定向 rm 命令以嫁接為 mv 命令,相當於給 Linux 系統定制了一個回收站。

實現方式如下:

### 重定義rm命令 ### 
 
# 定義回收站目錄 
trash_path='~/.trash' 
 
# 判斷 $trash_path 定義的文件是否存在,如果不存在,那么就創建 $trash_path. 
if [ ! -d $trash_path ]; then 
 mkdir -p $trash_path 
fi 
 
# 定義別名:使用 rm 就調用 trash 
alias rm=trash 
 
# 使用 rl 就調用 'ls ~/.trash' 
# 如果更改上面的回收站目錄這里的目錄也需要修改 
alias rl='ls ~/.trash' 
 
# 使用 unrm 就調用 restorefile,需要在刪除目錄的父目錄下執行 
alias unrm=restorefile 
 
# 使用 rmtrash 就調用 claearteash 
alias rmtrash=cleartrash 
 
# 恢復文件的函數 
restorefile() 
{ 
 mv -i ~/.trash/$@ ./ 
} 
 
# 刪除文件的函數 
trash() 
{ 
 mv $@ ~/.trash/ 
} 
 
# 清空回收站的函數 
cleartrash() 
{ 
 read -p "確定要清空回收站嗎?[y/n]" confirm 
 [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* 
} 

最后將上述腳本寫入 /etc/bashrc,並立即執行命令 source /etc/bashrc 即刻生效。

 

這個腳本定義了幾個命令:

  • rl:查看回收站下的文件。
  • unrm 文件名或目錄:恢復到當前的路徑下。
  • rmtrash:清空回收站,不過會友好提示。

執行 rm 不會真正刪除,而是使用 mv 移動到我們指定的回收站。實在真的想刪除可以 /bin/rm 來進行刪除。

另外,需要注意的是,之前 rm 指令的一些參數可能不再使用,因為 rm 現在其實是 mv 了。

使用示例:

# touch hoxistest 
# touch 1 
# mkdir haha 
# ls 
1 haha hoxistest 
# rm 1 
# ls 
haha hoxistest 
 
# 查看回收站文件 
# rl 
1 myftp1 
 
# 恢復已刪除文件 
# unrm 1 
[root@CESHI-CLM-10-254-4-48 test]# ls 
1 haha hoxistest 
 
# rm haha/ 
# rm hoxistest 
# rl 
haha hoxistest 
 
# 情況回收站 
# rmtrash 
確定要清空回收站嗎?[y/n]y 
# rl 

 

效果看着應該還可以吧。

 

轉自

作為一名運維俠,如何瀟灑的刪庫跑路? https://www.toutiao.com/a6604987457572176388/?tt_from=mobile_qq&utm_campaign=client_share&timestamp=1537847280&app=news_article&utm_source=mobile_qq&iid=26112390770&utm_medium=toutiao_ios&group_id=6604987457572176388


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM