2010-12-06 46 views
3

不知何故,圖像被保存爲文本/ ascii,我需要爲數百個圖像目錄遞歸地執行此操作,所有目錄都在一個根目錄images下。如何將以svn格式保存爲text/ascii的圖像大容量轉換爲二進制文件?

我得到了一些說明here,告訴我:

svn proplist <yourfile> 
svn propdel svn:eol-style <yourfile> 
svn propset svn:mime-type application/octet-stream <yourfile> 

有一些本地的svn遞歸的方式,我可以做到這一點?如果沒有,有人可能會建議我怎麼可以遞歸應用這個與bash腳本?

回答

3

在外殼:

find -name '*.png' -exec \ 
sh -c "svn propdel svn:eol-style {} && svn propset svn:mime-type image/png {}" \; 
1

我沒有一個Subversion版本庫,我可以測試了這一點,但它不應該太困難:

find . -name .svn -prune -o print 

這將列出所有工作目錄中的文件(不包含.svn目錄)。現在

,你可以用,同時結合該讀循環

find . -name .svn -prune -o print | while read file 
do 
    svn propdel svn:eol-style $file 
    svn propset svn:mime-type application/octet-stream $file 
done 

現在,你看到我不確認是否將文件都有屬性設置與否。我根本不在乎。而且,這將完成每個文件。如果你只想做一個特定類型的文件,你就必須修改find命令:

find . -name .svn -prune -o -name "*.jpg" print 

我強烈建議你先用乾淨的Subversion工作目錄,並運行這樣一個測試:

find . -name .svn -prune -o print | while read file 
do 
    echo svn propdel svn:eol-style $file 
    echo svn propset svn:mime-type application/octet-stream $file 
done 

如果輸出看起來不錯,然後刪除echo,讓'呃撕裂。

1

以下PowerShell代碼將實現你希望做什麼:

foreach($file in get-childitem -name -include *.png -exclude .svn -recurse) { 
    & svn propdel svn:eol-style $file; 
    & svn propset svn:mime-type image/png $file 
}; 
相關問題