파일 크기, 이름 및 기호 링크만 나열

파일 크기, 이름 및 기호 링크만 나열

를 사용하면 ls -lah각 파일에 대해 많은 정보를 얻습니다.

이름과 파일 크기만 어떻게 알 수 있나요?

또한 화살표가 있는 심볼릭 링크 목록을 유지하고 싶습니다.

lrwxrwxrwx  1 rubo77    rubo77       4 Nov 21 01:53 test2 -> test

답변1

awk를 사용하여 인쇄할 열을 선택하세요.

한 가지 방법은 출력을 구문 분석하는 것입니다 ls.

$ ls -lah | awk '{print $9, $5}' | tail -5
.yEd 4.0K
.youtube-dl 4.0K
.zenmap 4.0K
.zshrc 32
zzzz 3.3K

그런데, 출력 삭제를 사용할 수 있습니다 column.

$ ls -lah | awk '{print $9, $5}' | column -t | tail -5
z                                                   4
.youtube-dl                                         4.0K
.zenmap                                             4.0K
.zshrc                                              32
zzzz                                                3.3K

awk를 사용하여 삭제할 열을 선택하세요.

다른 열을 유지하면서 다른 열을 제거하려면 이 awk방법을 사용하여 원하지 않는 열을 지울 수 있습니다.

$ ls -lah | awk '{$1=$2=$3=$4=$6=$7=$8=""}1' | tail -5
    4.0K    .youtube-dl
    4    z -> zzzz
    4.0K    .zenmap
    32    .zshrc
    3.3K    zzzz

마지막 해결책

OP는 위의 예를 혼합하여 이 명령 체계를 만들었습니다.

$ ls -lah | awk '{print $5, $9$10$11}' | column -t | column 
...
4.0K  .gphoto              773   .rdebug_hist     4.0K  .youtube-dl
1.5K  .grip                4.0K  .rdesktop        4     z->zzzz

답변2

매뉴얼 페이지에서:

  -s, --size
          print the allocated size of each file, in blocks

따라서 사람이 읽을 수 있는 크기의 경우:

ls -sh

답변3

빠르고 더러운 방법은 ls -lah출력을 몇 가지 다른 명령과 결합하는 것입니다.

ls -lah | tr -s ' ' | cut -d' ' -f5,9-

tr -s명령은 여러 공백을 단일 공백으로 바꾸고 cut -d' ' -f5,9-열 5와 9(및 그 이상)를 인쇄합니다. 9-기호 링크에 의해 생성된 추가 공백으로 구분된 열을 고려해야 합니다 .

답변4

얻을 수 있는 가장 가까운 방법 ls은 억제된 사용자 및 그룹 열을 사용하는 것입니다 ls -log. 한 단계 더 나아가려면 출력을 구문 분석할 수 있습니다. 두 번째 열(링크 수)에는 가변 너비가 있습니다. 다음 셸 코드 조각은 열 정렬을 유지하고 임의의 파일 이름(문자 그대로 전달된 경우 줄 바꿈 제외)을 처리하며 출력을 컬러로 표시합니다(GNU coreutils를 실행하지 않는 경우 이 부분을 제거).

if [ -t 1 ]; then color=yes; else color=no; fi
ls -h -log --color="$color" | sed 's/^[^ ][^ ]* *[^ ][^ ]* \( *[^ ][^ ]*\) ............/\1/'

관련 정보