2010-12-06 6 views
3

どういうわけか、画像はtext/asciiとして保存されました。私は再帰的に何百ものディレクトリの画像を1つのルートimagesディレクトリの下に置く必要があります。svnのテキスト/ ASCII形式で保存されたイメージをバイナリにマス変換するにはどうすればよいですか?

私は私を教えていくつかの命令hereました:私はこれを行うことができ、いくつかのネイティブSVNの再帰的な方法があります

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

を?そうでなければ、誰かが再帰的にこれを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 

を読んで、私はファイルがプロパティが設定されたりしないように持っているかどうかを検証していないよ注意してください。私は気にしません。そして、これはすべてのファイルを処理します。私は非常にあなたがきれいにSubversionの作業ディレクトリで開始し、そしてこのようなテストを実行示唆

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

あなたが唯一の特定のタイプのファイルを実行したい場合は、 findコマンドを変更する必要があります
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 
}; 
関連する問題