2015-02-05 56 views
0

我正在使用cssembed將css文件中的所有圖像引用編碼爲base64,並用所做的更改替換原始css文件。但是,我想要做的是自動化我的文件夾中的所有CSS文件與許多子文件夾/子目錄的過程。
我嘗試以下:
如何在css文件中自動將數據uri嵌入到包含許多子目錄的目錄中?

java -jar cssembed-0.4.5.jar *.css > *.css 

但產生以下輸出:

bash: *.css: ambiguous redirect 

我還試圖

java -jar cssembed-0.4.5.jar *.css 

但這僅輸出在終端的結果,不會用編碼位替換文件。

如何解決這個問題?有什麼建議麼?

注:我試圖在Ubuntu終端上做到這一點。

回答

1

您可以使用find找到所有文件中的所有子目錄也:

find -name "*.css" -exec java -jar cssembed-0.4.5.jar '{}' > tmp \; -exec mv tmp '{}' \; 

這裏tmp是寫入到一個臨時文件,因爲當你使用的是必要的>你正在寫的文件立即截斷。第二個-exec僅在第一個成功返回時覆蓋原始文件,其內容爲tmp

如果上面的代碼是不是爲你工作,也許你可以試試這個:

find -name "*.css" -exec sh -c 'java -jar cssembed-0.4.5.jar "$0" > tmp && mv tmp "$0"' '{}' \; 

這將調用對於找到的每個文件創建一個單獨的外殼。 $0是找到的文件的名稱。

+0

工作!謝謝! – HackCode 2015-02-05 17:28:22

+0

@kaushaya不客氣。不要忘了在這種情況下將我的答案標記爲已接受 – 2015-02-05 17:32:06

相關問題