3

SVN リポジトリで 1GB を超えるファイルを一覧表示するコマンドが必要です。どうすればそれを達成できますか、誰かが正確なコマンドで私を助けることができれば素晴らしいでしょう.

これを達成するためにコマンドラインクライアントを使用しています。

ご協力いただきありがとうございます。

編集内容:

私はこのコマンドを試しました:

svn list --verbose --recursive file://path/to/repo | du -sh * | grep G 

このコマンドは、1 ギガより大きいファイルを返すのに安全ですか、それとも別のコマンドを実行できますか?

4

1 に答える 1

5

du -sh *あなたが望むものではありません。標準入力を介して提供されるリストではなく、現在のディレクトリで動作します。しかし、あなたは正しい一般的な考えを持っています。

svn list -v -R file://path/to/repo >svnlist.txtリポジトリ内のすべてのファイルに関する詳細を含むテキスト ファイルが作成されます。各行の 3 番目の項目は、ファイル サイズ (バイト単位) です。やりたいことは、1073741824 以上の値を持つ 3 番目のフィールドを持つすべての行を除外することです。

gig=$(( 1024*1024*1024 ))
while read line
do
    size=$(echo $line | awk '{print $3}')
    [[ $size -ge $gig ]] && echo $line
done <svnlist.txt

これawkは、サイズ (バイト単位) である 3 番目のフィールドを抽出するために使用されます。この値がギガバイトの事前計算値より大きい場合、ファイルのサイズとパスを含む行全体が出力されます。ディレクトリにはサイズ フィールドがないため、問題が発生します。その場合、size月の名前が含まれることになります。テキストと数値が字句的に比較される方法によりif、この場合は常に false と評価されます。

于 2013-02-01T01:22:46.247 に答える