查找扩展名为5个字符或更多的文件

时间:2015-07-09 09:54:30

标签: find sh

我有很多rsync命令失败的残留文件。它们都有5个(随机)字符的文件扩展名。是否有一个命令可以找到扩展名为4个字符且递归更多的所有文件?

rsync残留文件名的示例:foo.jpg.hzmkjt7

我已经找到了一种通过rsync来防止这种情况的方法,但我现在需要做的就是清理那些残羹剩饭......

2 个答案:

答案 0 :(得分:1)

您可以为此编写正则表达式:

\set startSmallOffset 1000000
\set traineeNext :startSmallOffset+2000

ALTER SEQUENCE record_trainee_id_seq RESTART WITH :traineeNext

也就是说,查找以find /your/dir -regextype posix-extended -regex '.*\..{4,}$' 和4个或更多结尾的文件。

关于如何使用How to use regex in file find的正则表达式的想法。

答案 1 :(得分:1)

使用bash,一个选项是使用globstar,如下所示:

shopt -s globstar # enable the shell option
echo **/*.?????   # to test which files are matched
rm **/*.?????     # if you're happy

该模式匹配当前目录中的所有文件或以.后跟5个字符结尾的所有子目录。

不是将任何字符与?匹配,而是通过将glob更改为**/*.[[:alnum:]][[:alnum:]][[:alnum:]][[:alnum:]][[:alnum:]]以匹配5个字母数字字符来更具体。