
我有一個包含數千個圖像檔案的目錄,其中大部分是 JPG,但也有一些 PNG。這些檔案沒有副檔名,只是編號。我需要將它們全部轉換為 JPG。
使用尋找我可以獲得所有文件及其類型的列表,然後我可以使用 Imagemagick 通過指定其類型將 PNG 轉換為 JPG:
convert png:10020 jpg:10020.jpg
但我想對所有文件批量執行此操作。我怎麼能透過管道輸出尋找並將所有 PNG 檔案轉換為 JPG?
答案1
find . -type f | while read IN; do
if [ "x$(file -b --mime-type $IN)" = "ximage/png" ]; then
convert png:$IN jpg:$IN.jpg;
fi;
done;
參數的涵義:
.
在目前目錄下尋找-type f
只查找文件,而不是目錄/套接字/等。while read IN; do
將每個檔案名稱放入變數中IN
並對其運行循環。if [ "x$(file -b --mime-type $IN)" = "ximage/png" ]; then
檢查檔案是否為 PNG...convert png:$IN jpg:$IN.jpg;
....如果是,請將其轉換。fi; done;
我們完了!
這次我測試了它,它可以工作,將一個充滿 PNG 的目錄轉換.png
為 JPG 的擴展名。