이 경우 "total36"만 표시하려면 어떻게 해야 합니까?

이 경우 "total36"만 표시하려면 어떻게 해야 합니까?

total 36숙제를 위해 여기서 생성된 출력을 Linux에서 얻으려고 합니다 ls -s.

vboxuser@Ubuntu:~$ ls -s
insgesamt 36
4 Bilder  4 Dokumente  4 Downloads  4 Musik  4 Öffentlich  4 Schreibtisch  4 snap  4 Videos  4 Vorlagen

awkor를 사용하여 몇 가지 명령을 시도했지만 du원하는 결과를 얻지 못했고 얻을 수 있는 가장 가까운 결과는 다음과 같습니다.

ls -s --block-size=1024

나에게 도움이 될 수 있는 명령이 있나요?

답변1

이렇게 하면 원하는 작업이 수행됩니다.

ls -s | grep ^total

파일 목록에서 각 파일의 이름 앞에는 크기가 표시되어 있으므로 "total"이라는 파일이 존재하더라도 파악되지 않습니다.

이 기능이 작동하려면 쉘 언어(로케일)를 독일어에서 영어로 변경해야 합니다.

답변2

사용진주:

~$ ls -s | perl -ne '$. == 1 && print $_;'

또는:

~$ ls -s | perl -ne 'print $_ if $. == 1;'

사용행복하다(이전 Perl_6):

~$ ls -s | raku -ne '++$ == 1 && .put;'

또는:

~$ ls -s | raku -ne '.put if ++$ == 1;'

합계가 첫 번째 출력 라인에 인쇄 되므로 ln -s위의 답변은 기본적으로 문제를 해결합니다."<STDIN>의 첫 번째 줄을 어떻게 인쇄하나요?"

두 언어(Perl 및 Raku) 모두 -ne"비자동 인쇄 한 줄씩 인쇄" 명령줄 플래그를 구현하고 이에 의존하여 줄 번호 변수가 출력을 제어할 수 있도록 합니다.

Perl을 사용하여 $.행 번호 변수가 1인지 테스트하면 &&단락 연산자가 주제 변수 print가 됩니다 . $_또는 (두 번째 예) if조건을 사용하세요.

Raku를 사용하면 익명 $스칼라가 미리 증가되고( ++$) 1과 동일한 것으로 테스트된 다음 &&단락 연산자가 주제 변수 put가 됩니다 . $_이 코드는 조건을 사용하는 .or(두 번째 예) 의 .put약어입니다 .$_.putput $_if

출력 예(네 가지 코드 예 모두):

total 36

https://perldoc.perl.org
https://docs.raku.org

답변3

ls파일 이름 인수 없이 호출할 때와 같이 디렉토리의 내용을 나열하기 위해 ,,,, 옵션 중 하나와 함께 호출하면 기본적으로 나열(현재 작업 디렉토리)이 되며 출력에 접두어를 추가합니다.-s-l-n-o-g.

total <a-number>

이 숫자는 나열된 파일이 차지하는 할당된 512바이트 디스크 공간 단위의 총 개수입니다. GNU 구현의 경우 환경에서 변수를 사용하여 호출하거나 옵션 또는 환경 변수를 사용하여 블록 크기를 지정 find하지 않는 한 1024바이트 단위입니다 .POSIXLY_CORRECT--block-sizeBLOCK_SIZELS_BLOCK_SIZE

비지박스나 토이박스(안드로이드)를 사용하면 해당 환경 ls에서도 1024바이트 단위를 얻을 수 POSIXLY_CORRECT있는데, 이러한 비준수를 해결할 수 있는 방법은 없는 것 같습니다.

대부분의 다른 구현에서는 512바이트 단위 수를 보고해야 합니다.

ls현지화된 구현을 사용하면 total사용자의 언어로 번역될 수 있는데, 이는 귀하의 경우인 것 같습니다. total로케일에 관계없이 사용자 환경 LC_ALL=C에서 호출 할 수 있도록 C(일명 POSIX 로케일)는 total표준에서 지정하는 방식이므로 보장되는 유일한 로케일입니다.

그래서:

POSIXLY_CORRECT=1 LC_ALL=C ls -s | head -n 1

busybox/toybox를 제외한 총 512바이트 단위 수를 가져옵니다.

ls특히 GNU의 경우 1024바이트 단위 수의 경우 :

LC_ALL=C ls --block-size=1024 -s | head -n 1

관련 정보