查找扩展名包含 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 个字母数字字符来更具体.
我有很多来自 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 个字母数字字符来更具体.