0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實現(xiàn)Linux操作系統(tǒng)的回收站(附源碼)

如意 ? 來源:良許Linux ? 作者:良許 ? 2020-09-07 09:44 ? 次閱讀

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

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

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

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

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

vim ~/.bashrc

在文件尾部,我們添加以下幾句代碼:

如何實現(xiàn)Linux操作系統(tǒng)的回收站(附源碼)

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

mv -i $@ ~/.trash/

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

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

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

當(dāng)過了一段時間后,回收站里文件太多了,我們可以使用 cleartrash 命令清空回收站。它將執(zhí)行同名函數(shù),調(diào)用 /bin/rm 命令將 .trash 目錄清空。

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

source ~/.bashrc

我們來實際體會一下:

刪除文件

如何實現(xiàn)Linux操作系統(tǒng)的回收站(附源碼)

查看回收站文件

如何實現(xiàn)Linux操作系統(tǒng)的回收站(附源碼)

還原被刪除的文件

如何實現(xiàn)Linux操作系統(tǒng)的回收站(附源碼)

清空回收站

如何實現(xiàn)Linux操作系統(tǒng)的回收站(附源碼)

通過以上這些步驟,我們雖然可以實現(xiàn)一個回收站的功能,但實際的工作中,我們還是要養(yǎng)成定時備份的習(xí)慣,這樣即使有誤操作,我們也可以將損失降到最低。
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209498
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6825

    瀏覽量

    123331
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2945

    瀏覽量

    66747
收藏 人收藏

    評論

    相關(guān)推薦

    基于Linux等不同操作系統(tǒng)實現(xiàn)異構(gòu)系統(tǒng)的設(shè)計

    通過該設(shè)計能夠確保裝有不同操作系統(tǒng)的各種服務(wù)器能夠在本系統(tǒng)中正常工作,同時使用消息隊列實現(xiàn)系統(tǒng)模塊之間的通信便于擴展系統(tǒng)的處理能力,能大大提
    發(fā)表于 01-16 09:17 ?2617次閱讀

    linux操作系統(tǒng)交叉編譯環(huán)境的建立方法

    操作系統(tǒng)內(nèi)核源碼壓縮包和GNU編譯工具通過ftp傳送到Linux服務(wù)器的某個目錄(如合法的用戶目錄),然后在該目錄下解壓,并將GNU編譯工具安裝到默認(rèn)的工作目錄即可,以上工作通過在工作
    發(fā)表于 04-16 09:22

    Win10系統(tǒng)回收站不見了的解決方法

    `近來有些用戶在使用win10系統(tǒng)電腦過程中,卻發(fā)現(xiàn)桌面上的回收站圖標(biāo)突然找不到了,這該怎么辦呢?下面,小編就給大家介紹找回丟失的Windows10回收站的具體方法。具體方法如下:1、先看
    發(fā)表于 01-27 16:20

    Linux操作系統(tǒng)交叉編譯環(huán)境的建立方法

    操作系統(tǒng)內(nèi)核源碼壓縮包和GNU編譯工具通過ftp傳送到Linux服務(wù)器的某個目錄(如合法的用戶目錄),然后在該目錄下解壓,并將GNU編譯工具安裝到默認(rèn)的工作目錄即可,以上工作通過在工作
    發(fā)表于 07-15 15:05

    回收站刪除的文件怎么恢復(fù)

    只需要簡單的幾步操作,那么我們回收站里清空的文件就可以恢復(fù)了,接下來我就來告訴大家如何利用這款軟件進行回收站文件恢復(fù)操作?! ?、打開常用的電腦,搜索“互盾數(shù)據(jù)恢復(fù)軟件”關(guān)鍵詞,將其下
    發(fā)表于 05-28 16:53

    分享Win10操作系統(tǒng)設(shè)置的幾個技巧

    新安裝Win10操作系統(tǒng)有必要設(shè)置的幾個技巧,希望對大家能有所幫助!1、控制面版、回收站、網(wǎng)絡(luò)等圖標(biāo)放到桌面微軟默認(rèn)只是放了個回收站在桌面,但是控制面版、我的電腦等圖標(biāo)就沒有放出來。但個人...
    發(fā)表于 01-10 08:12

    基于Linux操作系統(tǒng)的嵌入式網(wǎng)關(guān)的實現(xiàn)

    基于Linux操作系統(tǒng)的嵌入式網(wǎng)關(guān)的實現(xiàn)
    發(fā)表于 03-28 09:48 ?29次下載

    Linux操作系統(tǒng)

    linux的教學(xué)內(nèi)容1 、Linux概述 2 、Linux操作系統(tǒng)安裝3、 Linux的內(nèi)核 4 、Li
    發(fā)表于 04-10 16:54 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>

    Linux操作系統(tǒng)原理及應(yīng)用

    Linux操作系統(tǒng)原理及應(yīng)用 1.1  操作系統(tǒng)的地位 1.2  操作系統(tǒng)的功能 1.3  操作系統(tǒng)的發(fā)
    發(fā)表于 04-28 14:53 ?0次下載

    計算機刪除的文件和回收站清空的文件,究竟到哪里去了?

    計算機刪除的文件和回收站清空的文件,究竟到哪里去了? 當(dāng)微軟公司在Windows95中引入回收站之后,它立即成為許多用戶糾正失誤的有效工具。如果您刪除了文件后,意識
    發(fā)表于 07-30 08:47 ?3892次閱讀

    什么是Linux操作系統(tǒng)

    什么是Linux操作系統(tǒng)  簡單地說,Linux是一套
    發(fā)表于 12-26 12:04 ?1406次閱讀

    電腦回收站使用大全

    電腦回收站使用大全    使用Windows的用戶對回收站不會陌生,它給了我們一劑“后悔藥”。回收站保存了您刪除的文件、文件夾、圖片、
    發(fā)表于 02-23 15:08 ?4058次閱讀

    源碼-清空回收站

    易語言是一門以中文作為程序代碼編程語言學(xué)習(xí)例程:易語言-源碼-清空回收站
    發(fā)表于 06-06 17:43 ?2次下載

    趣談Linux操作系統(tǒng)

    趣談Linux操作系統(tǒng)
    的頭像 發(fā)表于 01-13 16:00 ?6482次閱讀

    linux屬于什么操作系統(tǒng)

    Linux屬于一種類UNIX操作系統(tǒng)。Linux,全稱GNU/Linux,是一套免費使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX
    的頭像 發(fā)表于 11-08 11:01 ?4510次閱讀