查找以数字结尾的文件


10

我正在尝试制作一些备份脚本,因为日志文件越来越大。我现在正在处理当前文件(例如中的secure文件/var/log/)并从该文件中删除内容。但是有些文件的名称如:secure.1secure.2我希望对所有这些文件进行计数,如果数量更大,则2可以全部归档。我找不到找到此文件或计数它们的方法。我想到的第一个想法是:

find /var/log/ -name *.1 | wc -l

1因为仅有一个文件,它将始终打印secure.1。我怎样才能像在for循环中那样在其中可以指定一定范围内的数字,例如{1..5}或类似数字。有没有一种方法可以分隔此文件,并使它们成为一个文件,然后对其进行备份或删除,或者执行任何操作……或者首先,我如何才能找到所有以数字结尾的数字。


1
您忘记引用通配符了吗?find /var/log/ -name '*.1' ...
muru

1
我认为您应该检查logrotate您的目的。
Costas 2014年

Answers:


15

用简单-name

find /var/log -name '*.[2-9]'

或任何数字:

find /var/log -name '*.[[:digit:]]'

或数字后是否有其他字符:

find /var/log -name '*.[2-9]*'

如何找到名称中仅包含数字的数字?
letthefireflieslive


1

为什么不只是...

for log in /var/log/*.[1-5]
do whatever to "$log"
done

find据我所知,您不需要-shell使用与它相同的glob -name。而且,如果所有文件都在一个目录中……当然,如果您也对子目录感兴趣,那么find这将是有益的-在外壳中行走树可能会让人头疼。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.