Linux 下 rm 命令是表示刪除一個(gè)文件,而Linux是沒有回收站機(jī)制,所以文件一旦刪除的話,就徹底從磁盤上刪除了。而很多人喜歡加上 -f 選項(xiàng),是代表強(qiáng)制的意思,更暴力的是刪除文件夾的時(shí)候使用 rm -rf 命令,這樣一來,文件夾本身,以及文件夾下的子子孫孫,都一了百了了。
而萬(wàn)一如果你執(zhí)行了 rm -rf /* 命令,那無(wú)疑效果與下面等同:
由于沒有回收站機(jī)制,很多人吃過這個(gè)虧,良許也是,曾經(jīng)辛苦寫的幾個(gè)月的代碼,一個(gè) rm 命令全部化為烏有,搞得每次執(zhí)行 rm 命令的時(shí)候,手都是顫抖的……
既然Linux沒有回收站,那我們能否自己實(shí)現(xiàn)一個(gè)?答案當(dāng)然是肯定的。下面,我們就自己動(dòng)手做一個(gè)回收站,給自己一個(gè)后悔的機(jī)會(huì)。
既然罪魁禍?zhǔn)资?rm 命令,那我們就對(duì)這個(gè)命令進(jìn)行改造。在Linux下對(duì)命令進(jìn)行重定義是使用 alias 命令,修改的是 .bashrc 文件,即:
vim ~/.bashrc
在文件尾部,我們添加以下幾句代碼:
在這里,我們是在家目錄下建立一個(gè) .trash 的隱藏文件夾,作為回收站。然后,我們對(duì) rm 命令進(jìn)行重定義。當(dāng)我們執(zhí)行 rm 或者 r 的時(shí)候,將執(zhí)行 trash 函數(shù)。而在 trash 函數(shù)里,只做一件事:
mv -i $@ ~/.trash/
就是將 rm 之后所有的文件移動(dòng)到 .trash 目錄下(即模擬丟進(jìn)回收站)。-i 選項(xiàng)表示如果 .trash 目錄有同名文件的話,將提示是否覆蓋。
我們將 rl 定義為 ls ~/.trash/ ,也就是說,我們可以通過 rl 來查看 .trash 目錄下的文件,即被「刪除」的文件。
如果要還原文件,可以執(zhí)行 ur ,而 ur 將執(zhí)行 undelfile 函數(shù)。在 undelfile 里,又將 ur 之后的文件從 .trash 目錄移回到原目錄,從而實(shí)現(xiàn)文件刪除還原。
當(dāng)過了一段時(shí)間后,回收站里文件太多了,我們可以使用 cleartrash 命令清空回收站。它將執(zhí)行同名函數(shù),調(diào)用 /bin/rm 命令將 .trash 目錄清空。
.bashrc 文件修改完畢之后,我們要讓它生效:
source ~/.bashrc
我們來實(shí)際體會(huì)一下:
刪除文件
查看回收站文件
還原被刪除的文件
清空回收站
通過以上這些步驟,我們雖然可以實(shí)現(xiàn)一個(gè)回收站的功能,但實(shí)際的工作中,我們還是要養(yǎng)成定時(shí)備份的習(xí)慣,這樣即使有誤操作,我們也可以將損失降到最低。
責(zé)編AJX
-
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212361 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7025瀏覽量
124723 -
源代碼
+關(guān)注
關(guān)注
96文章
2949瀏覽量
67630
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于Linux等不同操作系統(tǒng)實(shí)現(xiàn)異構(gòu)系統(tǒng)的設(shè)計(jì)
linux操作系統(tǒng)交叉編譯環(huán)境的建立方法
Win10系統(tǒng)的回收站不見了的解決方法
Linux操作系統(tǒng)交叉編譯環(huán)境的建立方法
回收站刪除的文件怎么恢復(fù)
分享Win10操作系統(tǒng)設(shè)置的幾個(gè)技巧
基于Linux操作系統(tǒng)的嵌入式網(wǎng)關(guān)的實(shí)現(xiàn)
Linux操作系統(tǒng)

評(píng)論