就我从其他示例中所理解的情况而言,例如this在目录中转换图像的示例,以下代码应该存储没有$f
中的扩展名的文件名:< / p>
f in *.tiff
当我尝试使用以下代码更改扩展名时:
for f in *.tiff; do mv "$f" "$(basename "$f").jpg"; done
我最终得到的文件名如diff_14.tiff.jpg
。这应该发生吗?我该如何解决这个问题?
注意:链接中的转换脚本不适用于此原因。我试图将所有.tiff
批量转换为.jpg
,我将问题缩小到文件名提取。我正在改变扩展作为测试;我知道它不会转换图像。
答案 0 :(得分:1)
man basename
说&#34;打印NAME,删除任何前导目录组件。&#34;这不是你想要的。代替:
for f in *.tiff; do mv "$f" "${f%.tiff}.jpg"; done
详细信息:http://tldp.org/LDP/abs/html/parameter-substitution.html