ファイル名、日付、サイズのみを表示するようにlsの出力を制限するにはどうすればよいですか?


25

lsLinuxでファイル名の日付とサイズのみのリストを取得するにはどうすればよいですか?所有者、許可などの他の情報を見る必要はありません。


どのLinuxについて話しているのですか?
トリティウス

apacheサーバー..

回答:


26

ls -l | awk '{print $5, $6, $7, $9}'

これにより、ファイルサイズがバイト、月、日付、およびファイル名で出力されます。

jin@encrypt /tmp/foo % ls -l
total 0
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 bar
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 baz
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 quux

jin@encrypt /tmp/foo % ls -l | awk '{print $5, $6, $7, $9}'
68 Oct 4 bar
68 Oct 4 baz
68 Oct 4 quux

@Sosukudoええ、私もわからない。しかし、人々は悪い質問に投票することは問題ないが、有用な場合は答えに投票しないことに同意するようです。meta.stackexchange.com/questions/98197/...
ジン

@Sosukodo:今すぐ自由に投票してください:)
sehe

6
複数のスペースを含むファイル名のサポートなし
-meso_2600

12

技術的には、では不可能ですがls、スイッチでfind同じ仕事をすることができます-printf

find -maxdepth 1 -printf '%t %s %p\n'

1
私の勝者はあなたの提案です。printfのより多くの分野に興味があるならRTFMを勧めます。たとえば、私のディレクトリでないすべてのファイルのアクセス権を示し find usr/lib/ -not -type d -printf '%M %p\n :出力 -rw-r--r-- usr/lib/x86_64-linux-gnu/apr-util-1/apr_crypto_openssl-1.so... ...魚に男を教えると、すべてのこと
クレイグ

質問はLinuxに関するものなので、不合理な答えではありませんが、記録のためにはGNU findが必要です。
ダンプリッツ

5

いつでもできます:

$ ls -l
total 0
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file1
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file2
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file3
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file4
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file5
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file6
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file7

cut それに:

$ ls -l | cut -f 8-13 -d ' '

0 Oct  6 23:29 file1
0 Oct  6 23:29 file2
0 Oct  6 23:30 file3
0 Oct  6 23:30 file4
0 Oct  6 23:30 file5
0 Oct  6 23:30 file6
0 Oct  6 23:30 file7

$ 

4
動作しない:変数の所有権、グループ、ファイルサイズ
-meso_2600

カットは連続した区切り文字を折りたたむことはありませんが、ls -l空白スペースの埋め込みを使用します。列の長さが均一でない場合(列5、ファイルサイズはそうでないことが多い)、cutは列を正しく選択しません。連続するスペースを折りたたむと役立ちます(ファイル名のスペースに注意してください)。ls -l | tr -s ' ' | cut -f 8-13 -d ' '
デイブ

4

別の非ls方法:

> stat --printf='%y\t%12s\t%-16n|\n' tmp.*
2017-06-15 10:42:07.252853000 +0200         10485760    tmp.1           |
2017-06-15 10:41:25.659570000 +0200              666    tmp.TKPzm3BfRw  |

説明:%y=人間が読める変更日。 %s=バイト単位のサイズ(%12s右揃え、長さ12); %n=ファイル名(%-16n左揃え、長さ16); \t=タブ、\n=改行。|=リテラルパイプ文字。ファイル名の最後を表示するだけです。

のようにlsstat表示するファイルを選択するオプションはありません。(これはfind ... -print0 | xargs -r0 stat ...、たとえば上記のようなシェルグロビングまたはいくつかの方法で実行できます。)


質問はLinuxについてでしたので、あなたの答えは結構ですが、気にする人は誰でもFreeBSD statに相当するものがあります。 stat -f '%N %Sm %z' filename
ダンプリッツ

2

トリティウスのわずかな変動

ls -lh | cut -f 6- -d ' '

1
バリエーションが追加するものを説明することに注意してください?
Ivo Flipse

6-xの代わりに6-を使用して、終了フィールドの番号を指定する必要がなくなります
-zzapper
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.