findの-printfステートメントはどのように機能しますか?

findの-printfステートメントはどのように機能しますか?
find /home/lead_admin -type f -printf '%s %p\n' | sort -nr | head -10

上記の声明は-printf '%s %p\n'正確に何をしますか?

答え1

からman find

-printf format
Trueです。 "\" エスケープ文字と "%" ディレクティブを解釈し、標準出力の印刷形式です。フィールドの幅と精度は、「printf」C関数を使用して指定できます。多くのフィールドは%dではなく%sとして印刷されます。これは、フラグが期待どおりに機能しないことを意味できます。これはまた、「-」フラグが機能することを意味します(フィールドを左揃えに強制します)。 -print とは異なり、-printf は文字列の末尾に改行文字を追加しません。エスケープ文字と指示は次のとおりです

\n Newline

%p File's name

%s File's size in bytes

つまり、-printf '%s %p\nファイルサイズをバイト単位で印刷し、スペース、ファイル名、最後に改行文字を印刷することを意味します。

関連情報