Linux的删除命令
在Linux下删除文件,我们使用rm命令,还有搭配相应的参数,具体的选择我们看下面看说明:
rm [参数] 文件名
参数说明:
1 -f -force 忽略不存在的文件,强制删除,无任何提示
2 -i -interactive 进行交互式删除
3 -r|-R -recursive 递归式地删除列出的目录下的所有
4 -V -verbose 详细显示进行的步骤
命令实例:
1.常规删除1.txt文件
[root]# rm a.txt
2.强行删除file.log文件
[root]# rm -f file.log
3.递归删除dirname目录下的所有内容
[root]# rm -R dir dirname
4.删除以-f开头的文件
[root]# touch ./-f
[root]# ls ./-f
./-f
[root]# rm ./-f
或者
[root]# touch -- -f
[root]# ls -- -f
-f
[root]# rm -- -f
5.强制删除目录dirname以及目录里的东西
[root]# rm -rf dirname
删除目录的命令:rmdir 目录名(但是它只有在目录为空时才会删除该目录)
删除名为testdir的目录
[root]# rmdir testdir
都写到这里了,那就一起说说吧,Linux 中删除文件的一些其它不同方法
find 命令使用 -exec 来调用 rm 命令
1.删除 /test 目录中的所有文件。首先 find 命令将查找目录中的所有文件,然后对于每个搜索结果,它会执行 rm 命令。
[root]# find /test -type f -exec rm {} \;
2.find 命令将搜索 /test 目录中 7 天前修改过的所有文件,然后删除每个文件
[root]# find /test -mtime +7 -exec rm {} \;
3.将搜索目录 /test 目录中所有大于 7M 的文件,然后再删除它们
[root]# find /test -size +7M -exec rm {} \;
4.上面第3条 find 命令中,如果结果中有 50 个大于 7M 的文件,那么将调用 50 次 rm 命令删除文件。而这样的操作将需要花费更长的时间。除了在 find 中借助 -exec 参数调用 rm 命令外,还有一个更好的选择,那就是使用 -delete 选项
[root]# $ find /test -size +7M -delete;
如果使用上面的这些命令,当我们的文件小的时候还是可以的,但是当我们遇到几十万或者更多的文件量时,上面的命令就有点就不适用了,所以,今天我们来探索一种面对超大文件时选择的删除命令。
Perl 语言:
在大数据文件时,我们选择Perl语言来删除,速度也是很快啦。现在让我们看看使用 Perl 语言删除文件是如何工作的。
$ time perl -e 'for(<*>){((stat)[9]<(unlink))}'
real 1m0.488s
user 0m7.023s
sys 0m27.403s
如果需要深入了解perl语言,大家去学习一下perl的正则表达语法哦!