linuxrm命令(删除⽂件和⽬录)使⽤详解
rm是常⽤的命令,该命令的功能为删除⼀个⽬录中的⼀个或多个⽂件或⽬录,它也可以将某个⽬录及其下的所有⽂件及⼦⽬录均删除。对于链接⽂件,只是删除了链接,原有⽂件均保持不变。
rm是⼀个危险的命令,使⽤的时候要特别当⼼,尤其对于新⼿,否则整个系统就会毁在这个命令(⽐如在/(根⽬录)下执⾏rm * -rf)。所以,我们在执⾏rm之前最好先确认⼀下在哪个⽬录,到底要删除什么东西,操作时保持⾼度清醒的头脑。1.命令格式:
rm [选项] ⽂件…
2.命令功能:
删除⼀个⽬录中的⼀个或多个⽂件或⽬录,如果没有使⽤- r选项,则rm不会删除⽬录。如果使⽤ rm 来删除⽂件,通常仍可以将该⽂件恢复原状。
3.命令参数:
-f, --force    忽略不存在的⽂件,从不给出提⽰。
-i, --interactive 进⾏交互式删除
-r, -R, --recursive  指⽰rm将参数中列出的全部⽬录和⼦⽬录均递归地删除。
-v, --verbose    详细显⽰进⾏的步骤
--help    显⽰此帮助信息并退出
--version  输出版本信息并退出
4.命令实例:
实例⼀:删除⽂件file,系统会先询问是否删除。
命令:
rm ⽂件名
输出:
[root@localhost test1]# ll
总计 4
-
rw-r--r-- 1 root root 56 10-26 14:31 log.log
root@localhost test1]# rm log.log
rm:是否删除⼀般⽂件 “log.log”? y
root@localhost test1]# ll
总计 0[root@localhost test1]#
说明:
输⼊rm log.log命令后,系统会询问是否删除,输⼊y后就会删除⽂件,不想删除则数据n。
实例⼆:强⾏删除file,系统不再提⽰。
命令:
rm -f log1.log
输出:
[root@localhost test1]# ll
总计 4
-rw-r--r-- 1 root root 23 10-26 14:40 log1.log
[root@localhost test1]# rm -f log1.log
[root@localhost test1]# ll
总计 0[root@localhost test1]#
实例三:删除任何.log⽂件;删除前逐⼀询问确认
命令:
rm -i *.log
输出:
[root@localhost test1]# ll
总计 8
-rw-r--r-- 1 root root 11 10-26 14:45 log1.log
-rw-r--r-- 1 root root 24 10-26 14:45 log2.log
[root@localhost test1]# rm -i *.log
rm:是否删除⼀般⽂件 “log1.log”? y
rm:是否删除⼀般⽂件 “log2.log”? y
[root@localhost test1]# ll
总计 0[root@localhost test1]#
实例四:将 test1⼦⽬录及⼦⽬录中所有档案删除
命令:
rm -r test1
输出:
复制代码
代码如下:
[root@localhost test]# ll
总计 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 2 root root 4096 10-26 14:51 test1
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# rm -r test1
rm:是否进⼊⽬录 “test1”? y
rm:是否删除⼀般⽂件 “test1/log3.log”? y
rm:是否删除⽬录 “test1”? y
[root@localhost test]# ll
总计 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxr-xr-x 3 root root 4096 10-25 17:44 test2
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#
实例五:rm -rf test2命令会将 test2 ⼦⽬录及⼦⽬录中所有档案删除,并且不⽤⼀⼀确认命令:
rm -rf  test2
输出:
复制代码
代码如下:
[root@localhost test]# rm -rf test2
[root@localhost test]# ll
总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]#
实例六:删除以 -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]#
也可以使⽤下⾯的操作步骤:
[root@localhost test]# touch ./-f
[root@localhost test]# ls ./-f
./-f[root@localhost test]# rm ./-f
rm:是否删除⼀般空⽂件 “./-f”? y
[root@localhost test]#
实例七:⾃定义回收站功能
命令:
myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
输出:
复制代码
代码如下:
[root@localhost test]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; } [root@localhost test]# alias rm='myrm'
[root@localhost test]# touch 1.log 2.log 3.log
[root@localhost test]# ll
总计 16
-rw-r--r-- 1 root root 0 10-26 15:08 1.log
-rw-r--r-- 1 root root 0 10-26 15:08 2.log
-rw-r--r-- 1 root root 0 10-26 15:08 3.log
drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# rm [123].log
moved to /tmp/20121026150901 ok
[root@localhost test]# ll
总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[root@localhost test]# ls /tmp/20121026150901/
linux删除子目录命令
1.log
2.log
3.log
[root@localhost test]#
说明:
上⾯的操作过程模拟了回收站的效果,即删除⽂件的时候只是把⽂件放到⼀个临时⽬录中,这样在需要的时候还可以恢复过来。