日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rm 给你一个反悔的机会

發布時間:2023/12/15 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rm 给你一个反悔的机会 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

導讀Linux?下 rm 命令是表示刪除一個文件,而Linux是沒有回收站機制,所以文件一旦刪除的話,就徹底從磁盤上刪除了。而很多人喜歡加上 -f 選項,是代表強制的意思,更暴力的是刪除文件夾的時候使用 rm -rf 命令,這樣一來,文件夾本身,以及文件夾下的子子孫孫,都一了百了了。

而萬一如果你執行了 rm -rf /* 命令,那無疑效果與下面等同:

由于沒有回收站機制,很多人吃過這個虧,良許也是,曾經辛苦寫的幾個月的代碼,一個 rm 命令全部化為烏有,搞得每次執行 rm 命令的時候,手都是顫抖的……

既然Linux沒有回收站,那我們能否自己實現一個?答案當然是肯定的。下面,我們就自己動手做一個回收站,給自己一個后悔的機會。

既然罪魁禍首是 rm 命令,那我們就對這個命令進行改造。在Linux下對命令進行重定義是使用 alias 命令,修改的是 .bashrc 文件,即:

vim ~/.bashrc 在文件尾部,我們添加以下幾句代碼:mkdir -p ~/.trash alias rm=trash alias r=trash alias rl='ls ~/.trash/' alias ur=undelfileundelfile() {mv -i ~/.trash/$@ ./ }trash() {mv -i $@ ~/.trash/ }cleartrash() {read -p "clear sure?[n]" confirm[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* }

在這里,我們是在家目錄下建立一個 .trash 的隱藏文件夾,作為回收站。然后,我們對 rm 命令進行重定義。當我們執行 rm 或者 r 的時候,將執行 trash 函數。而在 trash 函數里,只做一件事:

mv -i $@ ~/.trash/

就是將 rm 之后所有的文件移動到 .trash 目錄下(即模擬丟進回收站)。-i 選項表示如果 .trash 目錄有同名文件的話,將提示是否覆蓋。

我們將 rl 定義為 ls ~/.trash/ ,也就是說,我們可以通過 rl 來查看 .trash 目錄下的文件,即被「刪除」的文件。

如果要還原文件,可以執行 ur ,而 ur 將執行 undelfile 函數。在 undelfile 里,又將 ur 之后的文件從 .trash 目錄移回到原目錄,從而實現文件刪除還原。

當過了一段時間后,回收站里文件太多了,我們可以使用 cleartrash 命令清空回收站。它將執行同名函數,調用 /bin/rm 命令將 .trash 目錄清空。

.bashrc 文件修改完畢之后,我們要讓它生效:

source ~/.bashrc

我們來實際體會一下:

刪除文件 alvin@alvin-pc:~/test$ touch file1 file2 file3 alvin@alvin-pc:~/test$ ls file1 file2 file3 alvin@alvin-pc:~/test$ rm file1 file2 alvin@alvin-pc:~/test$ r file3 查看回收站文件 alvin@alvin-pc:~/test$ rl file1 file2 file3 還原被刪除的文件 alvin@alvin-pc:~/test$ rl file1 file2 file3 alvin@alvin-pc:~/test$ ur file1 alvin@alvin-pc:~/test$ ur file2 alvin@alvin-pc:~/test$ ur file3 alvin@alvin-pc:~/test$ ls file1 file2 file3 alvin@alvin-pc:~/test$ rl alvin@alvin-pc:~/test$ 清空回收站 alvin@alvin-pc:~/test$ rm file1 file2 file3 alvin@alvin-pc:~/test$ rl file1 file2 file3 alvin@alvin-pc:~/test$ cleartrash clear sure?[n]y alvin@alvin-pc:~/test$ rl alvin@alvin-pc:~/test$

通過以上這些步驟,我們雖然可以實現一個回收站的功能,但實際的工作中,我們還是要養成定時備份的習慣,這樣即使有誤操作,我們也可以將損失降到最低。

原文來自:?https://www.linuxprobe.com/rm-chance-back.html

轉載于:https://my.oschina.net/ssdlinux/blog/3005514

總結

以上是生活随笔為你收集整理的rm 给你一个反悔的机会的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。