因為mogrify好像沒有遞迴子資料夾的功能
所以我拿某人寫的sh改寫來用
有幾個問題想解決:
1、遇上檔名有空格的資料夾就會失效。
2、要怎寫才能增加轉換的格式? (例如:png、bmp、gif > jpg )
3、遇上格式大小寫也會失效? (png?PNG?)
#!/bin/bash
function START()
{
for fileName in `ls -F | grep '.JPG'` #找尋資料夾內所有的PNG圖檔
do
echo ' Converting: "'$fileName'"...'; #輸出轉換中訊息
mogrify -resize 1280X1024 "${fileName%.JPG}.jpg"; #轉換指令
done;
for folderName in `ls -F | grep '/'` #深入子目錄
do
folderName=${folderName%/*}; #稍微修正目錄表示方式,顯示比較美觀
echo ' Into: "'$folderName'".'; #輸出訊息
cd "$folderName"; #移動至該目錄
START; #遞迴呼叫
cd ..; #子目錄完畢後回原目錄
done;
}
read -p 'Please pick a DIR:' dir; #輸入要進行作業的資料夾名稱
cd "$dir"; #切換到下層目錄
echo 'Here we go!'; #程序開始訊息
START; #執行遞迴函數
echo 'Done!'; #完成訊息
--
:「我叔叔以前有兼差做消波塊 <( ̄︶ ̄)> <( ̄︶ ̄)>
小時候我都稱那個做 "肉粽" ( ′-`)y-~ 」
鄉民a:「驚!」
鄉民b:「這個不能惹!」
鄉民c:「靠!比mini158還猛!」
摘錄自《 -快樂的童年》ψ http://ncd-nocando.blogspot.com
--
所以我拿某人寫的sh改寫來用
有幾個問題想解決:
1、遇上檔名有空格的資料夾就會失效。
2、要怎寫才能增加轉換的格式? (例如:png、bmp、gif > jpg )
3、遇上格式大小寫也會失效? (png?PNG?)
#!/bin/bash
function START()
{
for fileName in `ls -F | grep '.JPG'` #找尋資料夾內所有的PNG圖檔
do
echo ' Converting: "'$fileName'"...'; #輸出轉換中訊息
mogrify -resize 1280X1024 "${fileName%.JPG}.jpg"; #轉換指令
done;
for folderName in `ls -F | grep '/'` #深入子目錄
do
folderName=${folderName%/*}; #稍微修正目錄表示方式,顯示比較美觀
echo ' Into: "'$folderName'".'; #輸出訊息
cd "$folderName"; #移動至該目錄
START; #遞迴呼叫
cd ..; #子目錄完畢後回原目錄
done;
}
read -p 'Please pick a DIR:' dir; #輸入要進行作業的資料夾名稱
cd "$dir"; #切換到下層目錄
echo 'Here we go!'; #程序開始訊息
START; #執行遞迴函數
echo 'Done!'; #完成訊息
--
:「我叔叔以前有兼差做消波塊 <( ̄︶ ̄)> <( ̄︶ ̄)>
小時候我都稱那個做 "肉粽" ( ′-`)y-~ 」
鄉民a:「驚!」
鄉民b:「這個不能惹!」
鄉民c:「靠!比mini158還猛!」
摘錄自《 -快樂的童年》ψ http://ncd-nocando.blogspot.com
--
All Comments