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

Find files with extension with 5 characters or more

我有很多来自 rsync 命令失败的残留文件。它们都有 5 个(随机)字符的文件扩展名。有没有一个命令可以递归地找到所有后缀为4个字符及以上的文件?

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

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

你可以为此写一个正则表达式:

find /your/dir -regextype posix-extended -regex '.*\..{4,}$'

也就是查找以.结尾的文件同时有4个或更多

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

使用 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 个字母数字字符来更具体.