Linux rm命令
阅读数:255 评论数:0
跳转到新版页面分类
Linux
正文
一、概述
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
删掉文件其实只是将指向数据块的索引点(information nodes)释放,只要不被覆盖,数据其实还在硬盘上,关键在于找出索引点,然后将其所指数据块内的数据抓出,再保存到另外的分区。在用rm误删除文件后,我们要做的第一件事就是保证不再向误删文件的分区写数据。
二、语法
rm [选项] 文件…
-f, --force | 强制删除,忽略不存在的文件,从不给出提示。 |
-i, --interactive | 进行交互式删除 |
-r, -R, --recursive | 指示rm将参数中列出的全部目录和子目录均递归地删除。 |
-v, --verbose | 详细显示进行的步骤 |
三、常用方式
1、将子目录及子目录中的档案删除,并不用确认
rm -rf subDir
四、rm误删数据的恢复
方式1、使用lsof命令恢复
lsof命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口。
在linux系统中,任何事物都以文件的形式存在。利用lsof可以恢复一些系统日志 ,前提是这个进程必须存在。
(1)查看进程
shell> lsof |grep /var/log/messages
rsyslogd 1737 root 1w REG 8,2 5716123 652638 /var/log/messages (deleted)
PID:1737
(2)进入/proc/1737/FD查看
shell> cd /proc/1737/fd/
shell> ll
total 0
lrwx------ 1 root root 64 Dec 23 13:00 0 -> socket:[11442]
l-wx------ 1 root root 64 Dec 23 13:00 1 -> /var/log/messages (deleted)
l-wx------ 1 root root 64 Dec 23 13:00 2 -> /var/log/secure
lr-x------ 1 root root 64 Dec 23 13:00 3 -> /proc/kmsg
l-wx------ 1 root root 64 Dec 23 13:00 4 -> /var/log/maillog
看到1对应/var/log/messages(deleted)
(3)恢复数据
shell> cat 1 > /var/log/messages
方式2、使用extundelete工具
http://extundelete.sourceforge.net
(1)下载
wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
(2)安装
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make
make install
(3)扫描误删除的文件
# 查看挂载
taroballs@taroballs-PC:~$ df -lh | grep /dev/sdb1
/dev/sdb1 6.8G 4.1G 2.8G 60% /media/taroballs/taroballs
# umount挂载盘(记住删除后一定要umount,不然二次写入就不好恢复了)
umount /media/taroballs/taroballs
#通过inode节点恢复
extundelete /dev/sdb1 --inode 2
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 8 groups loaded.
Group: 0
Contents of inode 2:
.
.省略N行
File name | Inode number | Deleted status
. 2
.. 2
deletetest 12 Deleted
tmppasswd 14 Deleted
通过扫描发现了我们删除的文件夹,现在执行恢复操作。
(4)恢复文件tmppasswd
taroballs@taroballs-PC:~$ mkdir recovertest
taroballs@taroballs-PC:~$ cd recovertest/
taroballs@taroballs-PC:~/recovertest$
taroballs@taroballs-PC:~/recovertest$ extundelete /dev/sdb1 --restore-file passwd
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 8 groups loaded.
Loading journal descriptors ... 46 descriptors loaded.
Successfully restored file tmppasswd
(5)恢复目录deletetest
extundelete /dev/sdb1 --restore-directory deletetest
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 8 groups loaded.
Loading journal descriptors ... 46 descriptors loaded.
Searching for recoverable inodes in directory deletetest ...
5 recoverable inodes found.
Looking through the directory structure for deleted files ...
(6)恢复所有
taroballs@taroballs-PC:~/recovertest$ extundelete /dev/sdb1 --restore-all
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 8 groups loaded.
Loading journal descriptors ... 46 descriptors loaded.
Searching for recoverable inodes in directory / ...
5 recoverable inodes found.
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.
taroballs@taroballs-PC:~/recovertest$ tree
backuptest/
├── deletetest
│ └── innerfolder
│ └── deletefile.txt
└── tmppasswd
2 directories, 2 files
(7)恢复指定inode
taroballs@taroballs-PC:~/recovertest$ extundelete /dev/sdb1 --restore-inode 14
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 8 groups loaded.
Loading journal descriptors ... 46 descriptors loaded.
taroballs@taroballs-PC:~/recovertest$ cat file.14
tcpdump:x:172:72::/:/sbin/nologin
#注意恢复inode的时候,恢复 出来的文件名和之前不一样,需要单独进行改名。
相关推荐
一、概述
该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。
请注意,rmdir命令只能删除空目录。如果要删除非空目录,可以使用rm命令的-r选项。
与rm命令不同,r
一、概述
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。
二、语
一、思路
1、使用lsattr查看文件是否i(不可变动)属性,如果有的话就使用chattr移除。
2、如果文件没有i属性,则逐层目录查看属性,原来父目录有i属性,使用chattr -i xxx命令去掉
mainline 、longterm、stable、linux-next、snapshot这些名词,都是linux kernel sou
一、通过源安装
# 安装arm-linux-gcc
sudo apt-get install gcc-arm-linux-gnueabihf
# 安装arm-linux-g++
sudo apt-ge
一、概述
1、为什么Linus不使用GPLv3
在 PC 上,只要你得到了某个程序的源代码,就可以自行编译生成二进制程序,然后替换掉原有的二进制程序,你的程序自由很容易得到保证。然而 iPod、iPh
说明:这种方式只是用于方便阅读代码,因为可以在源代间快速索引跳跃。但是最后可能会有一些warning,可以不必关心,如果是强迫症,可以使用下面这种方式来去掉。
一、概述
在Linux系统中,/usr/bin和/usr/local/bin是两个常见的目录,用于存放可执行文件(二进制文件)。
很多应用都安装在/usr/local下面,先看一下automake工具
一、概述
vmstat命令是最常见的Linux/Unix监控工具,可以监控给定时间间隔服务器的CPU使用率、内存使用、IO情况。相比top命令,可以查看到整个机器的CPU、内存、IO的使用情况,而
一、概述
sar,System Activity Reporter。是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁