rm命令不多说是做什么,大家一定喜欢这样 rm -rf *
在北京大学北极星高性能计算平台用户,需要注意几个错误使用方法,因为文件基本不可恢复:
1、rm -rf $dad/*
当 $dad 么有输入参数的时候,就会变成 rm -rf /*,。。。结果很严重,如果是root的话
这个需要加个判定,切记,可以在脚本里加入如下行
[test_pkuhpc@login12 yourname]$ cat rim
#/bin/bash
if [ "$dad"X == X ] ;then
exit 1
fi
2、rm -rf fafa *
这种本来是想删除含fafa开头的文件,在用tab键去补齐的时候,误操作按下空格,或者其他误操作加上空格了。这样在当前文件夹下的所有文件都会被删除。
3、删除link的时候使用rm -rf aa-link/ ,这个后果,就是删除link:aa-link/下的所有的文件,所以正确的删除是别带/: rm
-rf aa-link
创建文件夹:
[test_pkuhpc@login12 yourname]$ mkdir aa
创建文件夹里的文件
[test_pkuhpc@login12 yourname]$ cd aa
[test_pkuhpc@login12 yourname]$ cd aa
[test_pkuhpc@login12 aa]$ :>fafaf
[test_pkuhpc@login12 aa]$ :>fafaffaf
[test_pkuhpc@login12 aa]$ :>121414
[test_pkuhpc@login12 aa]$ :>csadgag
创建链接文件
[test_pkuhpc@login12 aa]$ cd ../
[test_pkuhpc@login12 yourname]$ ln -s aa aa-link
[test_pkuhpc@login12 yourname]$ ll
lrwxrwxrwx 1 test_pkuhpc test_pkuhpc 2 Dec 16 20:58 aa-link -> aa
[test_pkuhpc@login12 yourname]$ rm -rf aa-link ##这个是正常删除
[test_pkuhpc@login12 yourname]$ ln -s aa aa-link
[test_pkuhpc@login12 yourname]$ rm -rf aa-link/
[test_pkuhpc@login12 yourname]$ ls aa-link/ #全部都没有了
[test_pkuhpc@login12 yourname]$ ls aa #全部都没有了
4、rm 删除文件技巧--通配符
a、删除带数字特征的文件--- [0-9]去匹配
[test_pkuhpc@login12 yourname]$ ls
aa aaa1 aaa2 aaa212 aaa222 aaa22221 aaa33 aaa4 aaa5 aaa6 aaa8
aaa82 aaaa aa-link ccc inter2018 rim
[test_pkuhpc@login12 yourname]$ rm -rf aaa[1-2]
[test_pkuhpc@login12 yourname]$ ls
aa aaa212 aaa222 aaa22221 aaa33 aaa4 aaa5 aaa6 aaa8 aaa82 aaaa
aa-link ccc inter2018 rim
#含aaa1和aaa2的文件被删除了
b、删除单个匹配字符用---?
[test_pkuhpc@login12 yourname]$ rm -rf aaa2??
[test_pkuhpc@login12 yourname]$ ls
aa aaa22221 aaa33 aaa4 aaa5 aaa6 aaa8 aaa82 aaaa aa-link ccc
inter2018 rim
c、删除字母匹配---[a-z]
[test_pkuhpc@login12 yourname]$ rm -rf [a-c]*
[test_pkuhpc@login12 yourname]$ ls
inter2018 rim