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

一、cd命令进入这个linux文件夹目录。
二、打:
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)

如何批量删除Redis下特定pattern的keys?

Linux下批量重命名的方法

Linux 批量修改文件名 rename

linux 下怎样修改一个目录及其子目录下的所有文件的 修改时间 ???

windows批处理问题,如何批量删除某几个子文件夹下面,文件名包含特定字符串的所有文件?