1

bash では、ディレクトリとそのサブディレクトリで特定のタイプ (「*.txt」など) のファイルを検索するにはどうすればよいですか。次に、ファイルをサイズとフルパスとともにサイズの降順に表示します。

以下を試しましたが、うまくいきません。

find . -type f -name "*.txt" -print0 | ls -sS

これどうやってするの?

4

3 に答える 3

4

これを行うには、GNU find の printf オプションを使用できます。

find "$PWD" -type f -name '*.txt' -printf "%s %h/%f\n" | sort -rg

サイズをバイト単位ではなく KB 単位で表示するには:

find "$PWD" -type f -name '*.txt' -printf "%k %h/%f\n" | sort -rg
于 2012-08-01T03:19:22.557 に答える
2
find . -type f -name "*.txt" -print0 | xargs -0 ls -sS

一致するファイルのロードとロードがない限り、機能するはずです(デフォルトが何であるかを確認するには、man xargs(1))

以下のSwissのコメントが100%正しい場合xargs -0は、使用しているので進むべき道ですfind -print0

于 2012-08-01T03:06:43.313 に答える
1
find . -type f -name "*.txt" | xargs -i{} stat {} --format "%012s %n" | sort -r

サイズをバイト単位で指定します。

于 2012-08-01T03:08:53.027 に答える