覆盖就相当于永久性删除。呵呵, 兄弟想开点阿!!!
② linuxrm-rf删除的文件怎么恢复
第一种 误删文件进程还在
这种方法就比较简单,能还原的文件限制也比较多。如果被删除的文件的进程还是存在,即能找到进程PID。通过命令 lsof | grep (deletefile) 查找到进程id。然后就是进入进程目录 cd /proc/PID/fd 。然后可以通过 ll 命令查看具体文件信息,将有软连接到被删除文件的文件复制就可还原了。
第二种 使用extundelete之类基于inode的工具
针对 Linux 下的 ext 文件系统来说,常用的 Linux 文件删除恢复工具有 debugfs、ext3grep、extundelete 等。extundelete 是一个开源的数据恢复工具,支持 ext3、ext4 文件系统,其官方站点位于http://extundelete.sourceforce.net/,目前最新稳定版本为 0.2.0。
这个工具和还有一些其他类似的恢复工具,都是基于inode,还原文件的,也就是说,需要被删除文件的inode还在,没有被覆盖,即在文件删除之后,没有读写输入。所以第一件事就是挂起文件所在分区。但是这个操作有个问题就是,如果系统只有一个挂载盘,而且还是线上服务的话,挂起是不现实的。并且就算读写不多,但是系统本身没有安装这些恢复工具,在你安装编译这些恢复工具时的读写,也很可能把删除的文件inode覆盖了。
但是如果,系统拥有多个挂载盘,且被删除文件分区所在的文件盘挂起并不印象,你还是可以尝试这个方法的。或者系统本身就有安装这个工具,距离文件删除不是很久,也可以试一下,也许inode还在呢。
具体使用方法这里就不说了,网上很多教程,随便搜一下都是。
第三种 testdisk工具
testdisk 是分区表恢复、raid 恢复、分区恢复的开源免费工具(testdisk 支持如下文件系统: FAT12/FAT16/FAT32/NTFS/ext2/ext3/ext4)。testdisk 支持的功能: 修复分区表, 恢复已删除分区,用 FAT32 备份表恢复启动扇区,重建 FAT12/FAT16/FAT32 启动扇区,修复 FAT 表,重建 NTFS 启动扇区,用备份表恢复 NTFS 启动扇区,用 mft 镜像表(mft mirror)修复 mft 表,查找 ext2/ext3 备份的 superblock,从 FAT,NTFS 及 ext2 文件系统恢复删除文件,从已删除的 FAT,NTFS 及 ext2/ext3 分区复制文件。
所以,这个工具是不基于inode的,即时文件后,没有挂起分区,读写操作一直在进行,或者过去很久了,都是可以有机会恢复文件的。
但也不是百分百能成功,举个栗子,被删除的是 /usr/local/mytest 这个文件夹。然后你这个文件夹下部分文件的备份,为了及时先恢复部分线上业务,然后你mkdir /usr/local/mytest 然后将部分备份复制了进去。那么testdisk也无法拯救恢复了。还有就是testdisk恢复文件时,还需要注意看一下文件大小。如果文件大小显示为0,那么就算选择恢复这个文件,也是会得到一个0kb的文件。
所以这个适用于,一些inode已经被覆盖,但是文件物理存储块还未被覆盖的文件,可以尝试一下这个方法,也许可以找回部分丢失文件。
在使用rm -rf这个命令时一定要小心再小心,不然造成的后果是很严重的,因此提醒大家再使用这个命令时一定要保持头脑清醒。
③ 怎样在linux中覆盖文件夹以及文件夹里的文件
1、这么就用不会提示了:# \cp -rf
2、 原因:
# vi ~/.bashrc
如果你看到如下内容,以下命令都会用别名执行了,就是说自动加了 -i 参数:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
为了让复制和移动大量文件去覆盖目标时,不会产生一个个的提示,命令应该这样写
# \cp -rf /data/xxx* /home/xxx
注意 cp 命令前加了 \ ,意思是不让它用~/.bashrc里的别名运行,即 -i 参数
3、补充cp该命令的各选项含义如下
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。
4、需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
④ 如何恢复被删除的LINUX文件
Linux ext2文件系统下恢复误删的文件
一、文件误删
注意两点
(1)lsdel列出已被删除的文件的节点信息;stat显示某个节点所对应的文件信息;mp表示恢复作用
(2)如果被删除的文件很多,那么通过lsdel可看出文件的时间,然后自己判断进行恢复
⑤ linux怎样将文件覆盖到另一个文件
linux实用命令之如何移动文件夹及文件下所有文件 格式:mv [选项(option)] 源文件或目录 目标文件或目录使用命令:mv webdata /bin/usr/可以延伸一下:mv /usr/lib/* /zone 是将 /usr/lib/下所有的东西移到/zone/中。 mv /usr/lib/*.txt /zone 是将lib下以txt结尾的所有文件移到/zone中。 其他类型,以此类推。具体说明如下:1.作用 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。 2.格式 mv [options] 源文件或目录 目标文件或目录 3.[options]主要参数(几个重要的参数) -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。 -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。- r 指示mv将参数中列出的全部目录和子目录均递归地移动。 4.第二个参数 当第二个参数类型是文件时,mv命令完成文件重命名,它将所给的源文件或目录重命名为给定的目标文件名。 当第二个参数是已存在的目录名称时,
⑥ linux编译不小心 覆盖了源文件怎么办(linux高手进)
只能是恢复硬盘了:
只是不知道这个和用rm清除的数据情况是否一致,应该可以试试:
linux ext3 ext4文件系统下 恢复 rm -rf 误删除文件:http://qyiyunso.blog.163.com/blog/static/350776862010826115537113/
我的测试:
gcc sayHello.cc -o sayHello.cc
/tmp/ccmJYL0I.o: In function `main':
sayHello.cc:(.text+0x14): undefined reference to `std::cout'
sayHello.cc:(.text+0x19): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccmJYL0I.o: In function `__static_initialization_and_destruction_0(int, int)':
sayHello.cc:(.text+0x41): undefined reference to `std::ios_base::Init::Init()'
sayHello.cc:(.text+0x46): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccmJYL0I.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status