linux下使用通配符批量删除文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下使用通配符批量删除文件相关的知识,希望对你有一定的参考价值。
我的linux文件夹下有如下命名的log文件,都是日志文件,超过1000条。文件名称中间的20090808表示2009年8月8日,现在我想删除2009年08月以前的所有日志文件,如何使用通配符批量删除文件?谢谢高手帮忙!
zx-200.22-20090808.131442.log
zx-200.22-20090809.170245.log
zx-200.22-20090810.193934.log
zx-200.22-20090811.124930.log
zx-200.22-20090812.161723.log
二、打:
find . -type f -name *.log -mtime +x -exec rm -fv \;
命令作用:在当前目录下查找x天前的后缀为log的文件并且删除。
例:
find . -type f -name *.log -mtime +300 -exec rm -fv \;
查找300天前的后缀名为log的文件并且删除。
命令详细解释:
. 在当前目录下查找,如果要全盘查找的话,可以把.换成/,这样前面的cd命令就不需要了。
-type f 查找的是普通文件,而不是文件夹
-name *.log 查找后缀为log的文件
-mtime +x 查找x天以前的文件,所以需要把这个x换成你自己需要查找的天数,比如30.你要删除20090808以前的,就需要计算一下,它距离现在多少天。
-exec rm -fv \; 把查找的文件强制删除
如果权限不足,请以root身份运行命令。
如果是ubuntu,前面可以加sudo即可。 参考技术A rm -f zx-200.22-200[0-8]*.log
rm -f zx-200.22-20090[1-7]*.log本回答被提问者采纳 参考技术B find . -type f -mtime +5 天数 -exec rm \;楼主可以试哈这种方法,具体我也没有试过哈,我是给你说个思路哈
Linux下批量重命名的方法
rename
1.不过它要用 perl 正则表达式来作为参数,
2.举例如下:
touch test{1..5}.txt ##使用通配符创建5个文件
rename ‘s/\.txt/\.doc/‘ *.txt ##将后缀为TXT的文件重命名为doc文件
rename ‘y/a-z/A-Z/‘ *.doc ##批量将文件名改为大写
ps:没事就多看看文档了,,man rename就OK啦
以上是关于linux下使用通配符批量删除文件的主要内容,如果未能解决你的问题,请参考以下文章
批量删除不包括特定文件夹下的文件(或具有特定模式/通配符的文件名,例如 Test123.csv、Test623.csv、Test854.csv)