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-:~ $ mkdir showtime
gordon@gordon-:~ $ cd showtime/
gordon@gordon-:~/showtime $ l
gordon@gordon-:~/showtime $ touch baba
gordon@gordon-:~/showtime $ mkdir mama
gordon@gordon-:~/showtime $ l // 创建showtime文件夹,在这里演示
baba mama/ gordon@gordon-:~/showtime $ rl // 此时回收站 ~/.trash/ 文件夹为空
gordon@gordon-:~/showtime $ rm baba // rm baba 文件,进入 ~/.trash/ 文件夹
gordon@gordon-:~/showtime $ rl
baba gordon@gordon-:~/showtime $ rm -r mama
mv: invalid option -- 'r'
Try 'mv --help' for more information.
gordon@gordon-:~/showtime $ rm mama // 注意,移除文件夹不需要加 -r 参数
gordon@gordon-:~/showtime $ rl
baba mama gordon@gordon-:~/showtime $ l // 查看 showtime/ 文件夹,此时为空的
gordon@gordon-:~/showtime $ ur baba // 从 ~/.trash/ 文件夹恢复baba文件至原位
gordon@gordon-:~/showtime $ l
baba
gordon@gordon-:~/showtime $ rl
mama
gordon@gordon-:~/showtime $ ur mama // 恢复 mama/ 文件夹
gordon@gordon-:~/showtime $ l
baba mama/
gordon@gordon-:~/showtime $ rl gordon@gordon-:~/showtime $ rm baba mama
gordon@gordon-:~/showtime $ rl
baba mama gordon@gordon-:~/showtime $ cleartrash // 彻底清空 ~/.trash/ 文件夹中的内容
clear sure?[n]y // 根目录下,创建/删除文件都需要sudo权限
gordon@gordon-:/usr/local $ cd showtime/
gordon@gordon-:/usr/local/showtime $ sudo mkdir baba mama
gordon@gordon-:/usr/local/showtime $ sudo touch gege didi
gordon@gordon-:/usr/local/showtime $ l
baba/ didi gege mama/
gordon@gordon-:/usr/local/showtime $ rl
gordon@gordon-:/usr/local/showtime $ sudorm baba/
gordon@gordon-:/usr/local/showtime $ sudorm gege
gordon@gordon-:/usr/local/showtime $ rl
baba gege
gordon@gordon-:/usr/local/showtime $ l
didi mama/ gordon@gordon-:/usr/local/showtime $ sudo rm mama // 在有些电脑,运行sudo rm是原始的删除,并非重定义的移动操作
sudo: trash: command not found
gordon@gordon-:/usr/local/showtime $ sudo rm -r mama
sudo: trash: command not found
gordon@gordon-:/usr/local/showtime $ sudo rm didi
sudo: trash: command not found

ubuntu下恢复被rm删除的文件的更多相关文章

  1. Linux下将使用rm删除的文件显示在回收站中

    人难免会失误,出现一些问题,在删除文件的时候使用rm,删除之后就后悔了.因为rm命令删除的文件是不进入回收站的,这使得恢复起来很困难.解决这一难题,可以使用python编写的trash-cli( ht ...

  2. Linux下用rm删除的文件的恢复方法

    Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站https://www.linuxidc.com/Linux/2008-08/14744.htm linu ...

  3. Linux rm 删除指定文件外的其他文件 方法汇总

    一.Linux下删除文件和文件夹常用命令如下: 删除文件: rm file 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除 空文件夹 . 二.删除制定文件(夹)之外的所有文 ...

  4. Linux rm删除大批量文件

    在使用rm删除大批量文件时,有可能会遭遇"参数列太长"(Argument list too long)的问题.如下所示 [oracle@DB-Server bdump]$ rm - ...

  5. windows下使用DOS命令删除大文件

    首先进入DOS命令窗口: 1.进入到将要删除的目录: 执行命令: rmdir /s/q 文件夹名称 2.删除指定文件: 进入文件的目录下,找到要删除的文件名称+扩展名:例如111.jpg执行命令: d ...

  6. Linux rm删除大批量文件遇到 Argument list too long

    在使用rm删除大批量文件时,有可能会遭遇“参数列太长”(Argument list too long)的问题.如下所示   [oracle@DB-Server bdump]$ rm -v epps_q ...

  7. 在linux下使用debugfs恢复rm删除的文件

    原理主要是删除的文件并没有实际上从硬盘上摸去,只是inode索引删除了相关的信息,因此只要找到刚删除文件的block上,就可以恢复已经删除的文件. 以下方法在ext3的文件系统上测试通过,ext2的没 ...

  8. Ubuntu 16.04使用rm -rf误删文件恢复方法收集

    说明:不一定有效,需要不断尝试 一.lsof 文件刚刚被删除,想要恢复,先尝试lsof. lsof |grep data.file1 cp /proc/xxx/xxx/xx /dir/data.fil ...

  9. 如何恢复 Linux 上删除的文件,第 1 部分

    来源:http://www.ibm.com/developerworks/cn/linux/l-cn-filesrc/ 原理及普通文件的恢复 要想恢复误删除的文件,必须清楚数据在磁盘上究竟是如何存储的 ...

随机推荐

  1. Yarn-本地获取任务日志

    Yarn-本地获取任务日志 yarn logs -applicationId application_1517538889175_2550 > logs.txt

  2. Spring Cloud 使用Feign调用服务传递Header中的参数

    1.使用Feign 调用其他微服务,尤其是在多级调用的同时,需要将一些共同的参数传递至下一个服务,如:token.比较方便的做法是放在请求头中,在Feign调用的同时自动将参数放到restTempla ...

  3. mysql分表规则(转)

    author:skatetime:2013/05/14 Mysql分表准则 在大量使用mysql时,数据量大.高访问时,为了提高性能需要分表处理,简介下mysql分表的标准,后续会继续补充 环境:业务 ...

  4. mybatis字段映射枚举类型

    在底层使用mybatis的时候,我们可能会需要把表里的字段映射到Java里面的枚举类,现总结下工作中的用法: sku表里一个status_type字段为int类型.(这里是postgresql的脚本) ...

  5. 2015 四川省赛 C Censor(哈希 | KMP)

    模式串为子串 KMP /* @author : victor */ #include <bits/stdc++.h> using namespace std; typedef long l ...

  6. PropertyUtilsBean 将bean转成map

    public static Map<String,String> beanToMap(Object bean) { Map<String,String> params =Map ...

  7. Deepin安装 ruby 包管理工具 RVM(适用于 Debian 系列)

    1. 安装 GPG keys 先安装 gpg2 工具 sudo apt install gnupg2 再安装 keys gpg2 --recv-keys 409B6B1796C275462A17031 ...

  8. JSON.parse()与JSON.stringify()和eval()使用方法详解

    在和后端对接口的时候,遇到了一个问题 就是series里面数据变量进行拼接的时候,data数据里面全部是数值int类型的 但是因为某些需求需要让他进行某个数据之前的数据都为空 我试过用空字符串和und ...

  9. 修改MIGO或者ML81N产生的会计凭证项目文本增强

    在程序:MM07MFF9_F_BELEG_ERGAENZEN下做隐式增强

  10. 在树莓派Zero上使用C#+Mono驱动TM1637四位数码管

    最近闲着无聊,买了个树莓派Zero,准备在上面跑.Net Core,来驱动各种传感器 就是上面这货.之前手上已经有一个树莓派3B+,但是介于3B+已经被我挂在路由器旁边当做服务器用,不是很方便拿来研究 ...