Linux lsはファイル名、日付、サイズのみを表示します。

Linux lsはファイル名、日付、サイズのみを表示します。

lsLinuxで名前、日付、サイズのみを含むファイルのリストを取得するには?所有者や権限などの他の情報を表示する必要はありません。

可能ですか?

答え1

stat代わりに試してみてくださいls。これはGNU実装ですstat(BSDとzshにもstatコマンドがありますが、APIはまったく異なります)。

stat -c "%y %s %n" -- *

列形式で出力します(すべてのファイル名にコンマや改行が含まれていないと仮定)。

stat -c "%n,%s" -- * | column -t -s,

-現在の作業ディレクトリからファイルが呼び出されると、GNUはそのファイルでstatはなくstdinで開いているファイルに関する情報を報告します。

会ったらArgument list too longエラーが埋め込まれたシェルの場合は、printf次のように変更できます。

printf '%s\0' * | xargs -0 stat -c "%y %s %n" --

またはksh93から:

command -x stat -c "%y %s %n" -- *

statパラメータサイズの制限を解決するために、できるだけ多くの呼び出しを実行してください。

答え2

1出力書式設定など、他のユーティリティをいつでも使用できますawkls

/bin/ls -ls | awk '{print $7,$8,$9}'


1.はい、一般的に言うと、lsの出力を解析しないでください。しかし、この場合は質問で特に求める事項です。

答え3

このユーティリティのGNU実装により、ファイルの一覧表示方法を大量に制御できますfind。 GNUでは、ls実際に希望の列を指定することはできません。

たとえば、

$ find . -mindepth 1 -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601   2   b
20111001.1322   4096    a

この操作のパラメータについては、printfマニュアルページに詳しく説明されています。さまざまな時間情報、必要なサイズ(ファイルサイズ、または使用されているディスクブロック)などを選択できます。さらに処理が必要な場合は、異常なファイル名に対してこの操作が安全であることを確認することもできます。

答え4

lsを使用したいのですが、適切なサイズを維持するには、次のものを使用できます。

ls -Ss1pq --block-size=1

関連情報