linux命令学习之:rm

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

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

语法

  rm (选项)(参数)

选项

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;

-f:强制删除文件或目录;

-i:删除已有文件或目录之前先询问用户;

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;

--preserve-root:不对根目录进行递归操作;

-v:显示指令的详细执行过程。

参数

  文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

常用示例

1、删除文件(默认会询问)

[root@CTU1000094955 exceltemplates]# rm OOOO.tar 
rm: remove regular file ?.OOO.tar?. y
[root@CTU1000094955 exceltemplates]# ls
temp  test1.xlsx  test2.xlsx  testfolder  xxx.tar  xxx.tar.bz2  xxx.tar.gz  xxx.tar.Z

2、强行删除不询问

[root@CTU1000094955 exceltemplates]# rm -f test1.xlsx 
[root@CTU1000094955 exceltemplates]# ls
temp  test2.xlsx  testfolder  xxx.tar  xxx.tar.bz2  xxx.tar.gz  xxx.tar.Z

3、逐一询问删除

[root@CTU1000094955 exceltemplates]# rm -i *.xlsx
rm: remove regular file ?.est2.xlsx?. y
rm: remove regular file ?.est3.xlsx?. y
[root@CTU1000094955 exceltemplates]# ls
temp  testfolder  xxx.tar  xxx.tar.bz2  xxx.tar.gz  xxx.tar.Z

4、删除目录及子目录

[root@CTU1000094955 exceltemplates]# rm -rf testfolder
[root@CTU1000094955 exceltemplates]# ls
temp  xxx.tar  xxx.tar.bz2  xxx.tar.gz  xxx.tar.Z

5、删除以 -f 开头的文件

  命令:rm -- -f

[root@localhost test]# touch -- -f
[root@localhost test]# ls -- -f
-f[root@localhost test]# rm -- -f
rm:是否删除 一般空文件 “-f”? y
[root@localhost test]# ls -- -f
ls: -f: 没有那个文件或目录

  也可以使用下面的操作步骤:

[root@localhost test]# touch ./-f
[root@localhost test]# ls ./-f
./-f[root@localhost test]# rm ./-f
rm:是否删除 一般空文件 “./-f”? y

6、自定义回收站功能

  命令:myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }

[root@CTU1000094955 exceltemplates]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
[root@CTU1000094955 exceltemplates]# alias rm='myrm'
[root@CTU1000094955 exceltemplates]# touch 3.log
[root@CTU1000094955 exceltemplates]# ll
total 88
-rw-r--r-- 1 root root     0 Nov 29 09:47 3.log
-rw-r----- 1 root root 43216 Nov 29 09:43 test1.xlsx
-rw-r----- 1 root root 43216 Nov 29 09:43 Test_CustomerDirect.xlsx
[root@CTU1000094955 exceltemplates]# rm *
moved to /tmp/20171129094735 ok
[root@CTU1000094955 exceltemplates]# ls /tmp/20171129094735/
3.log  test1.xlsx  Test_CustomerDirect.xlsx
原文地址:https://www.cnblogs.com/jing99/p/7911280.html