我有一个名为src
完整的子目录和其他图像的目录。我尝试使用一个 bash 语句自动将它们全部调整到另一个目标目录,thumb
如下所示:
find ./src -type f -follow -iname '*.jp*g' -exec convert -resize 150x150x "{}" "./thumb/${size}/{}" \;
这不起作用,因为该thumb
目录最初是空的,并且没有与src
.
我试图查找,man convert
但似乎找不到自动创建目录的选项convert
。将我的所有图像转换为thumb
目录中的缩略图大小的有效方法是什么?我需要预先创建拇指中的所有子目录吗?
编辑
我在上面的命令之前是这样的:
find ./src -type d -follow -exec mkdir -p "thumb/${size}/{}" \;
但是我很好奇我是否能够用一个命令而不是两个命令来完成所有事情?
UNIX 哲学是有命令,它只做一件事和一件事。可以写入文件而不是标准输出的命令已经在扩展此规则。
您是否可以在一个命令中完成所有操作取决于您的定义。做这个:
计为一个或多个命令:
find
,sh
,mkdir
,dirname
,convert
? 换行符只是为了“可读性”。