我用linux,bash。
我在几个目录中有一堆图像文件。所有都必须保存的特定名称(文件名和目录)。但我需要将所有图像转换为不同的大小和ppi。我用过
convert -units PixelsPerInch 75 -resize 200x200 ~/filepath/*.jpg ~/filepath.*jpg
但它取代了错误的文件。我也试过了
"{}" "{}"%03d.jpg
添加一个数字到新的文件名,但它只给出001.jpg等。
解决方案如
Bash - get last dirname/filename in a file path argument
或
Extract filename and extension in Bash
使用${filename%.}
和脚本的其他部分
或
http://bytebar.blogspot.com/2008/08/bash-filename-extraction.html
不工作或我没有这样的知识来理解代码......
如何转换保存其名称和目录的文件?
答案 0 :(得分:0)
ls ~/filepath.*jpg | xargs -n 1 -I{} convert -units PixelsPerInch 75 -resize 200x200 {} {}
“xargs -n 1”使用提供的参数一次调用以下函数。 xargs的-I {}参数告诉xargs用给定的参数替换{}的每个出现。