我有一個資料夾,其中包含許多充滿圖像的子資料夾。例如,請參閱附圖。
基本上,我想循環遍歷所有圖像並縮小圖像大小,使圖像寬度不超過 1024 像素。它們都是jpeg。
我知道 SIPS 命令,即
sips -Z 1024 *.png
但是,只有當所有圖像都位於當前目錄中時,這才有效。
如何設定它遍歷所有子目錄?
答案1
您可以使用 find 運行它:find images/path -type f -name '*.png' -exec sips -Z 1024 {} \;
Find 將在「images/path」目錄中搜尋檔案(-type f),副檔名為png(-name '*.png'),並執行參數中的命令,將「{}」替換為檔案名,需要結束帶有“\;”的命令。
答案2
我設法更改了一個對我有用的小 bash 腳本
#!/bin/bash
find "foldername" -type f | \
while read file ; do
echo "processing ${file}"
sips -Z 2000 ${file}
done