在目录中递归查找 32 个字符长的文件并应用命令

在目录中递归查找 32 个字符长的文件并应用命令

我的文件夹和文件如下所示:

/thumbs/6b0/6b029aab9ca00329cd28fd792ecf90a.jpg
/thumbs/6b0/6b029aab9ca00329cd28fd792ecf90a-s.jpg
/thumbs/d11/d11e15a72e20e14c45bd2769d763126d.jpg
/thumbs/d11/d11e15a72e20e14c45bd2769d763126d-s.jpg

我想将以下命令应用于拇指文件夹中所有子目录中名称中没有 -s 的文件。

mogrify -resize 50% -quality 85 -strip filename.jpg

我环顾四周 find 和 grep 但不知道如何做到这一点。

任何帮助表示赞赏。

答案1

find thumbs/ -not -name "*-s.jpg" -exec mogrify -resize 50% -quality 85 -strip {} \;

答案2

回答主题中的问题:

find . -name '????????????????????????????????.jpg' -exec cmd {} \;

要插入这 32?秒,请使用tcshzshbashemacs模式中键入Alt+3Alt+2?。使用这些外壳并kshvi模式下,输入 a ?,使用 离开插入模式Esc,然后按x剪切该内容?,然后32p粘贴 32 次。

使用 GNU find,您还可以执行以下操作:

find . -regextype egrep -regex '.*/[^/]{32}\.jpg' -exec cmd {} \;

相关内容