回答:
stat代わりに使用しないのはなぜlsですか?
stat -c "%y %s %n" *
find . -type f -print0 | xargs -0 stat -c "%y %s %n"
stat、Cのprintf関数などのフォーマット文字列に幅情報を追加します。たとえば"%y %8s %n"、ドキュメント化されていませんが、機能しているようです(coreutils 8.17、Fedora 18)
ls私は千の区切り文字で出力できるからです。どのように動作しstatますか?
ls。色はどうですか??
findユーティリティを使用してファイルを一覧表示する方法について、多くの制御を取得できます。ls必要な列を実際に指定することはできません。
例えば:
$ find . -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601 4096 .
20111007.0601 2 b
20111001.1322 4096 a
printfアクションへの引数は、マンページに詳細があります。さまざまな時間情報、必要なサイズ(使用されているファイルサイズまたはディスクブロック)などを選択できます。さらに処理が必要な場合は、通常とは異なるファイル名に対してこれを安全にすることもできます。
%C+(出力 "2016-08-29 + 10:57:56.9201257840")および%Cc(出力 "Mo 29 Aug 2016 10:57:56 CEST")
1awkの出力をフォーマットするなどの別のユーティリティを常に使用できます。ls
/bin/ls -ls | awk '{print $7,$8,$9}'
lsエイリアスされている場合は失敗します(たとえばalias ls='ls -i')。ls出力の解析に取りかかりたい場合は、本当に多くの注意を払う必要があります。
ls、構文解析に関するすべての警告については同意しますが、それがOPが望んだことです
/bin/ls、エイリアスの問題を避けるだろう。)
ls私たち両方が空白の要件を満たさないことに同意する解決策を望んでいるということです。/bin/ls提案は良いものです。
-hしてサイズを取得し、人間が判読できるようにするために使用できます。具体的に私が使用: ls -lah | awk '{print $5,$6,$7,$8}'得ています: 4.0K Jan 24 18:17。確かに、元のソリューションはawkについて何も述べていませんが、Linuxでは、プロセスの出力は常に別のプロセスへの入力であると想定する必要があります。;)
ls日時によるソートが非常に高速であるため素晴らしいですが、フォーマットは扱いにくいです。--time-style='+&%Y%m%d+%H%M%S.%N'トークンが '&'のような--time-styleでトークンを使用することをお勧めします。これを参照として使用すると、出力をさらに解析sedでき、トークンがサイズになる直前に戻ることができます!誰かがそれを完全な回答として投稿したい場合は、お気軽に、私は今あまりにも眠っています:)