linux中的-f和-rf的区别,linux操作的几个误区:(一)可怕的rm -rf

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

你可能感兴趣的:(linux中的-f和-rf的区别,linux操作的几个误区:(一)可怕的rm -rf)