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. 查看本机的所有磁盘分区

  1. sudo fdisk -l

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

  1. % df -h [directory]
  2. df -h /usr/lib/

经验总结:

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

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

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

  1. mkdir -p ~/.trash
  2. alias rm=trash
    alias sudorm=sudotrash
  3. alias rl='ls ~/.trash'
  4. alias ur=undelfile
  5.  
  6. undelfile()
  7. {
  8. mv -i ~/.trash/$@ ./
  9. }
  10.  
  11. trash()
  12. {
  13. mv $@ ~/.trash/
  14. }
  1. sudotrash()
  2. {
  3. sudo mv $@ ~/.trash/
  4. }
  1. 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/

实验示范一下:

  1. gordon@gordon-:~ $ mkdir showtime
  2. gordon@gordon-:~ $ cd showtime/
  3. gordon@gordon-:~/showtime $ l
  4. gordon@gordon-:~/showtime $ touch baba
  5. gordon@gordon-:~/showtime $ mkdir mama
  6. gordon@gordon-:~/showtime $ l // 创建showtime文件夹,在这里演示
  7. baba mama/
  8.  
  9. gordon@gordon-:~/showtime $ rl // 此时回收站 ~/.trash/ 文件夹为空
  10. gordon@gordon-:~/showtime $ rm baba // rm baba 文件,进入 ~/.trash/ 文件夹
  11. gordon@gordon-:~/showtime $ rl
  12. baba
  13.  
  14. gordon@gordon-:~/showtime $ rm -r mama
  15. mv: invalid option -- 'r'
  16. Try 'mv --help' for more information.
  17. gordon@gordon-:~/showtime $ rm mama // 注意,移除文件夹不需要加 -r 参数
  18. gordon@gordon-:~/showtime $ rl
  19. baba mama
  20.  
  21. gordon@gordon-:~/showtime $ l // 查看 showtime/ 文件夹,此时为空的
  22. gordon@gordon-:~/showtime $ ur baba // ~/.trash/ 文件夹恢复baba文件至原位
  23. gordon@gordon-:~/showtime $ l
  24. baba
  25. gordon@gordon-:~/showtime $ rl
  26. mama
  27. gordon@gordon-:~/showtime $ ur mama // 恢复 mama/ 文件夹
  28. gordon@gordon-:~/showtime $ l
  29. baba mama/
  30. gordon@gordon-:~/showtime $ rl
  31.  
  32. gordon@gordon-:~/showtime $ rm baba mama
  33. gordon@gordon-:~/showtime $ rl
  34. baba mama
  35.  
  36. gordon@gordon-:~/showtime $ cleartrash // 彻底清空 ~/.trash/ 文件夹中的内容
  37. clear sure?[n]y
  38.  
  39. // 根目录下,创建/删除文件都需要sudo权限
  40. gordon@gordon-:/usr/local $ cd showtime/
  41. gordon@gordon-:/usr/local/showtime $ sudo mkdir baba mama
  42. gordon@gordon-:/usr/local/showtime $ sudo touch gege didi
  43. gordon@gordon-:/usr/local/showtime $ l
  44. baba/ didi gege mama/
  45. gordon@gordon-:/usr/local/showtime $ rl
  46. gordon@gordon-:/usr/local/showtime $ sudorm baba/
  47. gordon@gordon-:/usr/local/showtime $ sudorm gege
  48. gordon@gordon-:/usr/local/showtime $ rl
  49. baba gege
  50. gordon@gordon-:/usr/local/showtime $ l
  51. didi mama/
  52.  
  53. gordon@gordon-:/usr/local/showtime $ sudo rm mama // 在有些电脑,运行sudo rm是原始的删除,并非重定义的移动操作
  54. sudo: trash: command not found
  55. gordon@gordon-:/usr/local/showtime $ sudo rm -r mama
  56. sudo: trash: command not found
  57. gordon@gordon-:/usr/local/showtime $ sudo rm didi
  58. 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. 【转】【mysql面试】https://blog.csdn.net/hanfazy/article/details/14520437

    公司招聘MySQL DBA,也面试了10个2年MySQL DBA工作经验的朋友,谈谈自己的心得,欢迎大家指点. 1    2年MySQL DBA经验 其中许多有水分,一看到简历自我介绍,说公司项目的时 ...

  2. Excel透视表进阶之计算字段、计算项、切片器、页面布局

    计算字段 在透视表的字段列表中通过函数.公式等方式构建一个新的字段 又称虚拟字段,因为计算字段不会出现在数据源中,对于普通字段的操作,都可以对计算字段进行操作 计算字段只能出现在值区域,不能出现在筛选 ...

  3. 用C#取个中文名字

    *注意:此方法获得的名字很可能出现生僻字,若要get一个好记/常见的名字,还请另作操作. 以百家姓(444个单姓,60个复姓)作为姓氏,再添加两个随机的中文,You can get a chinese ...

  4. Django之AJAX传输JSON数据

    目录 Django之AJAX传输JSON数据 AJAX 中 JSON 数据传输: django响应JSON类型数据: django 响应 JSON 类型数据: Django之AJAX传输JSON数据 ...

  5. C - 卿学姐与诡异村庄(并查集+One face meng bi)

    卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...

  6. sql server 函数详解(3)数据类型转换函数和文本图像函数

    数据类型转换函数 文本和图像函数 --在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型 ...

  7. ArcGis执行StartEditing(true)时,winform程序直接崩溃.

    问题描述:在Program中配置了ArcGis的许可,又在winform窗体添加了许可,导致执行StartEditing(true)时,winform程序直接崩溃. 原代码如下: static cla ...

  8. Linux FTP的安装与权限配置

    ftp安装部分,操作步骤如下: 1.切换到root用户 2.查看是否安装vsftp,我这个是已经安装的. [root@localhost vsftpd]# rpm -qa |grep vsftpd v ...

  9. SQL语句中*号的缺点

    我觉得这篇博客说的比较好,参考借鉴一下:https://blog.csdn.net/weixin_44588186/article/details/87263756

  10. React Native 开源项目汇总

    最近闲来无事,学习了React Native开发Android APP,自我感觉RN APP的效果和Native APP比还是蛮不错,以下是找到的一些优秀源码,仅供学习参考... React Nati ...