回答:
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
技術的には、では不可能ですがls、スイッチでfind同じ仕事をすることができます-printf:
find -maxdepth 1 -printf '%t %s %p\n'
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... ...魚に男を教えると、すべてのこと
いつでもできます:
$ 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
$
ls -l空白スペースの埋め込みを使用します。列の長さが均一でない場合(列5、ファイルサイズはそうでないことが多い)、cutは列を正しく選択しません。連続するスペースを折りたたむと役立ちます(ファイル名のスペースに注意してください)。ls -l | tr -s ' ' | cut -f 8-13 -d ' '
別の非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=改行。|=リテラルパイプ文字。ファイル名の最後を表示するだけです。
のようにls、stat表示するファイルを選択するオプションはありません。(これはfind ... -print0 | xargs -r0 stat ...、たとえば上記のようなシェルグロビングまたはいくつかの方法で実行できます。)
stat -f '%N %Sm %z' filename
トリティウスのわずかな変動
ls -lh | cut -f 6- -d ' '