每天一个linux命令:rm

每天一个linux命令:rm

更多精彩请关注:www.zicreate.com

1.命令功能

rm 即 remove files or directories,删除文件或目录命令,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用”-i”选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

新手注意:rm -rf *删除当前目录下的所有文件,这个命令很危险,应避免使用。

2.命令格式

rm (选项)(参数)

3.命令参数

    -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
    -f:强制删除文件或目录;
    -i:删除已有文件或目录之前先询问用户;
    -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
    --preserve-root:不对根目录进行递归操作;
    -v:显示指令的详细执行过程。

4.使用场景

rm 命令非常简单,后面直接跟文件或目录即可。

常见操作如下:

rm  file.txt                #  删除一个文件;
rm -r /tmp/test        #  删除一个目录;
rm -rf /tmp/test/*    #  删除目录下的所有文件;这个命令的危险之处就在于有时操作太快而稍不留意命令就会变成:“rm -rf /tmp/test/ [空格] *”!!!这种情况下将会删除/tmp/test/还有rm命令执行目录下的所有文件。如果rm命令是在“/”根目录下执行的,那么整个系统就完了。
rm *.txt                    # 删除当前目录下所有的txt文件
rm test[1-3].txt        # 删除当前目录下的test1.txt test2.txt test3.txt;
rm test{1,3,4}.txt      # 删除当前目录下的test1.txt test3.txt test4.txt;

关于上面命令中通配符的讲解在前期的文章中已经有所涉及,本文不再详解。

扩展

(1)rmdir

rmdir 删除空目录,一个目录被删除之前必须是空的。如果目录非空会报错。

命令格式

rmdir (命令参数) 目录名

命令参数

    -p--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
    --ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
    -v-verboes:显示命令的详细执行过程;

使用场景

$ rmdir /tmp/test/subdir

这个命令我基本没用过,因为 rm 已经可以完成目录删除工作了。

(2)配合find使用

在目录/tmp/test/ 下面查找文件名为”test*.txt” 类型的文件并删除:

$ find /tmp/test/ -iname “test*.txt” -exec rm {} \;

find 为查找命令,后期文章将会详解。

(3)自定义回收站功能

为了防止错误删除文件,保证所有用户都能将 rm 命令删除的文件先放入回收站,可以在/etc/profile文件最后添加如下代码:

mkdir -p ~/.trash

alias rm=trash
trash()
{
    echo "File move to ~/.trash/"
    mv $@ ~/.trash/
}

修改后执行 # source /etc/profile 重载环境变量,使修改生效(此需要root权限)。使用此种方法之后,rm 命令的各种命令参数选项就不再有效了。

如果是只想修改自己的rm命令,则修改“~/.bashrc”,同样在文件最后添加上面的代码。如果该文件中有“alias rm=’rm -i’”这样的代码,则注释掉该行(修改为“#alias rm=’rm -i’”)。

修改后执行 # source /etc/profile 重载环境变量。

演示如下:

# touch test1.txt test2.txt test3.txt test4.txt
# rm *
# ls /root/.trash/
test1.txt  test2.txt  test3.txt  test4.txt

如果要清空回收站可以使用如下方法:

方法1$ /bin/rm -rf ~/.trash/*

方法2$ \rm  -rf ~/.trash/*

方法3$ unaslias rm        #(这只是临时取消rm的别名)
$ rm  -rf ~/.trash/*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值