ubuntu系统下使用rm命令删除文件

一 ubuntu系统下使用rm命令删除文件,如何恢复?

如果是ext3/ext4文件系统,可以使用extundelete工具恢复。

$ df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda1    ext4      455G  366G   66G   85% /

参考文章:

1. http://longgeek.com/2012/11/25/extundelete-recovery-for-linux-ext2-ext3-ext4-rm-rf-accidental-deletion-of-data/

2. http://www.linuxyunwei.com/2012/08/ext4%E4%B8%AD%E6%81%A2%E5%A4%8D%E4%BD%BF%E7%94%A8rm%E5%91%BD%E4%BB%A4%E8%AF%AF%E5%88%A0%E9%99%A4%E7%9A%84%E6%96%87%E4%BB%B6/

二 建议安装好ubuntu后,先将rm命令做一下别名替换。

替换rm命令为mv命令,将要删除的文件移动到一个自定义的文件夹里,防止误删除。

代码如下:

1. 在/home/username/ 目录下新建一个目录,命名为:.trash

2. 在/home/username/tools/目录下,新建一个shell文件,命名为:remove.sh。内容如下:
PARA_CNT=$#
TRASH_DIR="/home/username/.trash"
for i in $*; do
    STAMP=`date +%s`
    fileName=`basename $i`
    mv $i $TRASH_DIR/$fileName.$STAMP
done

3. 修改~/.bashrc, 增加一行
alias rm="sh /home/username/tools/remove.sh"
用我们自建的remove.sh替代rm命令

4. 设置crontab,定期清空垃圾箱,如:
0 0 * * * rm -rf /home/username/.trash/*
每天0点清空垃圾箱

5. source ~/.bashrc 使替换立即生效
经过上面的步骤后,执行rm删除的文件,会被放入垃圾箱。如果误删除,可以从中恢复。

6. 由于~/.bashrc这个文件对root用户无效,所以也要修改/etc/bash.bashrc,
这个文件有全局效应。
    在最后一行加上:alias rm="sh /home/username/tools/remove.sh"

这样,把rm命令转换成了mv命令,能够达到想要的效果,只不过在习惯性的敲入-r 参数时会报出一个错误,因为mv命令没有-r参数嘛。

时间: 2024-10-12 20:29:32

ubuntu系统下使用rm命令删除文件的相关文章

rm 命令(删除文件和目录)

rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除.对于链接文件,只是删除了链接,原有文件均保持不变. rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf).所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑. 1.命令格式: rm [选项] 文件- 2.命令功能: 删除一个目录中的一个或多个文件或目录,如果

Ubuntu系统下常见新建、拷贝文件命令

我们在Ubuntu系统中安装程序时,经常要在usr目录下新建.拷贝文件,此文件夹在Linux类系统中需要root权限才能访问,因此用常规的鼠标右键菜单操作是无效的,今天分享一下在终端中使用命令新建.拷贝文件. 相关命令: cd 路径                (进入一个路径,比如 /usr/local/lib) cd ..   (返回上一个文件夹) dir (显示当前文件夹下的所有文件) sudo 命令 (获取超级管理权限,需要输入密码) 常用新建.删除.拷贝命令: mkdir 目录名   

Linux学习笔记--rm命令(删除文件或目录)

rm:英文名remove,删除的意思. 1. 命令格式: rm [选项] 文件或目录 2. 常用选项: "rm -f" 强行删除,忽略不存在的文件,不提示确认.(f为force的意思) "rm -i" 进行交互式删除,即删除时会提示确认.(i为interactive的意思) "rm -r" 将参数中列出的全部目录和子目录进行递归删除.(r为recursive的意思) "rm -v" 详细显示删除操作进行的步骤.(v为verbo

linux下实现rm()函数删除文件或目录

在linux下有两个函数可以用来删除文件: #include <unistd.h> int unlink(const char *pathname); unlink函数删除文件系统中的一个名字,如果这个名字是该文件的最后一个link并且该文件没有被任何进程打开,那么删除该文件.否则等到文件被关闭或最后一个link被删除后删除该文件并释放空间. #include <unistd.h> int rmdir(const char *pathname); 只有当目录为空的时候,rmdir才

linux下修改rm命令防止误删除

前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. 第一步: 先在home目录下创建一个叫username名字的目录(当然名字可以自定义),具体命令为:sudo mkdir username(自定义的名字) 这时候记得要用命令:sudo chmod 777 username(自定义的名字)来改变一下你的目录权限,因为在home目录下刚创建的目录是没

Ubuntu中恢复rm命令误删文件(转)

计算机系统:Ubuntu 16.04 1 背景 在做项目的时候,本来想使用rm命令删除以14开头的文件,结果写成如下形式: [cpp] view plain copy rm 14 * 注意,本来14和*之间不应该有空格的,但是误写了一个空格,结果导致所有文件都被删除了!为了找回被误删的文件,根据网上的一些资料进行探索. 2 ext3grep [cpp] view plain copy sudo apt-get install ext3grep 参考资料[4]中对这个工具的使用有比较详细的说明过程

linux ubuntu系统下,adb不是内部命令 (如何才能让adb命令可以使用)

linux ubuntu系统下,adb不是内部命令 解决方法: 1.sudo gedit ~/.bashrc 2.将下面的两句加到上面打开的文件里 export ANDROID_HOME=/home/jason/Develop_SDK/android-sdk-linux_86 export PATH=$PATH:$ANDROID_HOME/tools 最新的SDK要改为:$PATH:$ANDROID_HOMOE/platform-tools 注意:“/home/jason/Develop_SDK

Linux下通过rm -f删除大量文件时提示&quot;-bash: /bin/rm: Argument list too long&quot;的解决方法

Linux下通过rm -f删除/var/spool/postfix/maildrop/中大量的小文件时提示: "-bash: /bin/rm: Argument list too long" 如图: 通过ls /var/spool/postfix/maildrop/*|wc -l 发现文件数达到21万多,见附件: 原因:rm -f的参数过多 解决方法:可使用awk一次删除一个的方式进行删除,但必须先进入该目录下,操作方法如下:1.先进入该目录下:cd /var/spool/postfi

如何将Linux rm命令删除的文件放入垃圾箱

因为rm命令删除的文件是不会放入垃圾箱的,所以无法恢复,下面小编就给大家介绍一种方法,通过替换Linux rm命令的方法,从而将rm命令删除的文件放入垃圾箱. 方法: 1. 在/home/username/ 目录下新建一个目录,命名为:.trash 2. 在/home/username/tools/目录下,新建一个shell文件,命名为: remove.sh PARA_CNT=$# TRASH_DIR="/home/username/.trash" for i in $*; do ST