답변:
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
output : -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, 파일 크기가 종종 없음) 잘라내 기는 열을 올바르게 선택하지 않습니다. 연속 공백을 축소하면 도움이됩니다 (파일 이름에서 공백을 조심하십시오). 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 ...
예를 들어 위와 같이 쉘 globbing 또는 일부로 수행 할 수 있습니다 .)
stat -f '%N %Sm %z' filename
Tolitius에서 약간의 변형
ls -lh | cut -f 6- -d ' '