zoukankan      html  css  js  c++  java
  • ubuntu下恢复被rm删除的文件

    ubuntu是文件系统,不像windows系统划分盘符(C/D/E/etc...盘)。ubuntu对磁盘划分分区,可以使用extundelete恢复ext3/ext4格式的磁盘分区。

    其中,ext3/ext4是linux的正规文件系统,是一款索引式文件系统。

    注意:一旦发生误删操作,应该立即停止对磁盘进行写入操作(download or install),记录下误删操作发生的时间文件路径

    extundelete软件的官网

    http://extundelete.sourceforge.net/

    使用extundelete软件撤销rm操作的博客

    https://my.oschina.net/fufangchun/blog/176550

    https://www.cnblogs.com/yuhuLin/p/7027253.html

    https://blog.csdn.net/zcf1002797280/article/details/49812649#commentBox

    相关命令行

    1. 查看本机的所有磁盘分区

    sudo fdisk -l

    2. 查看某一目录属于哪个磁盘分区

    % df -h [directory]
    df -h /usr/lib/

    经验总结:

    1. 做好备份。熟练使用git。

    2. 重定义rm。rm是个非常危险的命令行。具体操作如下:

    在 ~/.bashrc 添加如下内容,重定义 rm 指令。

    mkdir -p ~/.trash
    alias rm=trash
    alias sudorm=sudotrash alias rl
    ='ls ~/.trash' alias ur=undelfile undelfile() { mv -i ~/.trash/$@ ./ } trash() { mv $@ ~/.trash/ }
    sudotrash()
    {
        sudo mv $@ ~/.trash/
    }
    cleartrash() { read -p "clear sure?[n]" confirm [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/* }

    这段代码定义了三个函数 trash()、 undelfile() 和cleartrash() 。

    其中,trash的作用是挪动文件到指定回收站目录;

    sudotrash的作用是使用超级权限挪动文件到指定回收站。如果运行sudo rm,此时rm是最原始的删除功能,并非重定义的移动功能

    undelfile的作用是找回回收站中的指定文件;

    cleartrash的作用是清空回收站目录。

    添加完毕后, source ~/.bashrc  使重定义生效。此时已经可以找到  ~/.trash/  文件夹了。

    命令行:

    1. rl 查看 ~/.trash/ 文件夹中的内容;

    2. rm file, rm directory 删除文件或者文件夹;

    3. sudorm file, sudorm directory 使用超级权限删除文件或者文件夹;

    4. ur file, ur directory 从 ~/.trash 中恢复文件或者文件夹到原位;

    5. cleartrash 清空 ~/.trash/

    实验示范一下:

    gordon@gordon-5577:~ $ mkdir showtime     
    gordon@gordon-5577:~ $ cd showtime/
    gordon@gordon-5577:~/showtime $ l
    gordon@gordon-5577:~/showtime $ touch baba
    gordon@gordon-5577:~/showtime $ mkdir mama
    gordon@gordon-5577:~/showtime $ l                       // 创建showtime文件夹,在这里演示
    baba  mama/
    
    gordon@gordon-5577:~/showtime $ rl                      // 此时回收站 ~/.trash/ 文件夹为空
    gordon@gordon-5577:~/showtime $ rm baba           // rm baba 文件,进入 ~/.trash/ 文件夹
    gordon@gordon-5577:~/showtime $ rl
    baba
    
    gordon@gordon-5577:~/showtime $ rm -r mama
    mv: invalid option -- 'r'
    Try 'mv --help' for more information.
    gordon@gordon-5577:~/showtime $ rm mama         // 注意,移除文件夹不需要加 -r 参数
    gordon@gordon-5577:~/showtime $ rl
    baba  mama
    
    gordon@gordon-5577:~/showtime $ l                       // 查看 showtime/ 文件夹,此时为空的 
    gordon@gordon-5577:~/showtime $ ur baba           // 从 ~/.trash/ 文件夹恢复baba文件至原位
    gordon@gordon-5577:~/showtime $ l
    baba
    gordon@gordon-5577:~/showtime $ rl
    mama
    gordon@gordon-5577:~/showtime $ ur mama        // 恢复 mama/ 文件夹
    gordon@gordon-5577:~/showtime $ l
    baba  mama/
    gordon@gordon-5577:~/showtime $ rl
    
    gordon@gordon-5577:~/showtime $ rm baba mama
    gordon@gordon-5577:~/showtime $ rl
    baba  mama
    
    gordon@gordon-5577:~/showtime $ cleartrash        // 彻底清空 ~/.trash/ 文件夹中的内容
    clear sure?[n]y 
    
    // 根目录下,创建/删除文件都需要sudo权限
    gordon@gordon-5577:/usr/local $ cd showtime/
    gordon@gordon-5577:/usr/local/showtime $ sudo mkdir baba mama
    gordon@gordon-5577:/usr/local/showtime $ sudo touch gege didi
    gordon@gordon-5577:/usr/local/showtime $ l
    baba/ didi gege mama/
    gordon@gordon-5577:/usr/local/showtime $ rl
    gordon@gordon-5577:/usr/local/showtime $ sudorm baba/
    gordon@gordon-5577:/usr/local/showtime $ sudorm gege 
    gordon@gordon-5577:/usr/local/showtime $ rl
    baba gege
    gordon@gordon-5577:/usr/local/showtime $ l
    didi mama/
    
    gordon@gordon-5577:/usr/local/showtime $ sudo rm mama   // 在有些电脑,运行sudo rm是原始的删除,并非重定义的移动操作
    sudo: trash: command not found
    gordon@gordon-5577:/usr/local/showtime $ sudo rm -r mama
    sudo: trash: command not found
    gordon@gordon-5577:/usr/local/showtime $ sudo rm didi
    sudo: trash: command not found
  • 相关阅读:
    Markdown入门
    HTTP协议 keep-alive连接 与 BS(firefox-thttpd)实验
    emoji探寻之路
    JavaScript实现绑定DOM的定时器插件
    C语言 str2bin 和 bin2str 实现
    LUA OOP 单例模式实现的 一个 方案
    LUA OOP编程实现方法
    以一则LUA实例说明敏捷开发中“分离构造和使用”原则
    HTML 中按钮作为form表单元素提交特性两则 --- 参HTML考标准分析
    分享:一款前端布局工具(alloydesigner)
  • 原文地址:https://www.cnblogs.com/gdut-gordon/p/11840503.html
Copyright © 2011-2022 走看看