2
我有一個使用inkscape將SVG文件轉換爲PNG的腳本。但是,轉換後的文件放置在腳本所在的頂層目錄中。我想將轉換後的文件放在它的子目錄中。循環遍歷子目錄,cd到子目錄中,然後處理文件
頂級目錄如下:
folderA
|---file1.svg
|---file2.svg
|---file3.svg
folderB
|---file4.svg
|---file5.svg
|---file6.svg
svg2png.sh
腳本運行之後,我想PNG文件位於其子目錄是這樣的:
folderA
|---file1.svg
|---file1.png
|---file2.svg
|---file2.png
|---file3.svg
|---file3.png
folderB
|---file4.svg
|---file4.png
|---file5.svg
|---file5.png
|---file6.svg
|---file6.png
svg2png.sh
不喜歡這樣的:
file1.png
file2.png
file3.png
file4.png
file5.png
file6.png
folderA
|---file1.svg
|---file2.svg
|---file3.svg
folderB
|---file4.svg
|---file5.svg
|---file6.svg
svg2png.sh
這裏是svg2png.sh
#/bin/sh
find . -name \*.svg -exec sh -c 'inkscape -z -e $(basename {} .svg).png {}' \;
這是由@ anishsane提供的最新svg2png.sh:
#/bin/sh
find . -name \*.svg -execdir sh -c 'inkscape -z -e $(basename {} .svg).png {}' \;
檢查'-execdir'選項到'find' – anishsane
這是有效的。謝謝@anishsane。 –