`ls`가 파일 크기를 MB 단위로 표시하도록하려면 어떻게합니까?


442

Linux에서 ls파일 크기 (MB)를 표시하려면 어떤 명령이 필요 합니까?

답변:


513

ls -l --block-size=M긴 형식 목록 (실제로 파일 크기를 볼 필요가 있음)을 제공하고 파일 크기 를 가장 가까운 MiB로 반올림합니다.

MiB (2 ^ 20 바이트) 단위 --block-size=MB대신 MB (10 ^ 6 바이트) 단위를 원하면 대신 사용하십시오.

M파일 크기에 접미사를 첨부 하지 않으려면 다음과 같이 사용할 수 있습니다 --block-size=1M. 이것을 제안 해 주신 Stéphane Chazelas 에게 감사드립니다 .

단순히 메가 바이트가 아닌 "합리적인"단위로 파일 크기를 원하는 경우 -lh긴 형식 목록과 사람이 읽을 수있는 파일 크기 프리젠 테이션 을 얻는 데 사용할 수 있습니다 . (그래서 당신은 같은 파일 크기 볼이 약 1-3 자리되게 파일 크기를 유지하기 위해 파일 크기의 단위를 사용합니다 6.1K, 151K, 7.1M, 15M, 1.5G등을.

--block-size매개 변수는 LS에 대한 설명서 페이지를 참조하십시오; man ls를 검색하십시오 SIZE. MB / MiB 이외의 장치도 가능하며, 임의의 블록 크기 (외관을 시도하지는 않음)에서도 볼 수 있습니다 (원하는 경우 파일 크기를 429 바이트 블록 수로 볼 수 있음) 에).

모두 유의 --block-size-h의 정상에 GNU 확장이다 열기 그룹의ls , 그래서 당신은 (대부분의 리눅스 설치 할)은 GNU 유저 랜드가없는 경우이 작동하지 않을 수 있습니다. lsGNU로 coreutils 8.5에서이 --block 크기 전술 한 바와 같이 -h를 지원합니다. 이것을 지적 해준 kojiro 에게 감사합니다 .


11
차이 어쩌면 눈여겨볼 가치는 : --block-size=M원인 M접미사가 다음 크기로 표시 할, 당신은 사용할 수 있습니다 --block-size=1M생략 할 수 있습니다. 또한 GNU l이 필요하다는 것도 언급 할 가치가 있습니다.
Stéphane Chazelas

2
이것이 GNU ls입니까? 표준ls 에는 그러한 주장이 없습니다. 으로 XSI 확장 ls-s이 블록의 수를보고합니다 플래그를하지만, 표준 플래그가 없습니다 --block-size.
kojiro

2
@kojiro GNU ls는 --block-size데비안 스퀴즈 시스템에 설치된 coreutils 8.5를 가지고 있습니다. 질문은 Linux에 대한 것이었고 다른 것을 지정하지 않았으므로 GNU coreutils를 중심으로 한 사용자 영역을 가정했습니다. 이것을 명확히하기 위해 답변을 업데이트했습니다. (또한, Open Group ls도 -h를 가지고 있지 않은 것 같습니다. :))
CVn

2
@EmanuelBerg, 1000 ^ 7 (10 ^ 21)은 2 ^ 64보다 큽니다 (~ 10 ^ 19.27)
Stéphane Chazelas

4
@Tom 답의 마지막 단락에서 언급했듯이 --block-sizeGNU 확장입니다. Mac OS X은 GNU를 사용하지 않는 것 같습니다 ls.
CVn

384

ls -lh 사람이 읽을 수있는 파일 크기, 긴 형식을 제공합니다.

필요에 따라 k, M, G 및 T 접미사 (또는 바이트의 접미사 없음)를 사용하므로 숫자가 작게 유지됩니다 (예 : 1.4K또는) 178M.

-h 기본 POSIX가 아닌 GNU coreutils 확장입니다.

요청한대로 정확하게 질문에 대답하지는 않습니다. 작거나 거대한 파일의 경우에도 MiB에서 크기를 엄격하게 원한다면 Michael Kjörling의 대답은 GNU coreutils에 대한 것ls 입니다.


4
그것은 1.0 GiB 미만의 것보다 큰 파일 크기를 GB 단위로 인쇄합니다 (믿습니다).
CVn

5
@ MichaelKjörling 나는 그것을 잘못된 대답으로 보지 않습니다 (비공식은 아니지만). 때로는 OP가 원하는대로 정확하게 질문하지 않기 때문에 사람이 읽을 수있는 출력을 원하고 대신 "MB 단위"로 표현할 수있었습니다.
Dason

5
공감. "(MB) 질문에 대한 답변이 아닙니다"는 완벽하게 유효한 진술이지만이 답변은 동일한 맥락에 있기 때문에이 답변은이 SO 페이지의 유용성을 증가 시켰습니다. 나는 "사람이 읽을 수있는 형식으로 날짜를 보여주기"요구 사항에 대한 해결책을 찾고자이 페이지에 왔으며, 다음 h보다 훨씬 쉽게 작성할 수 있습니다.--block-size=M
Ejaz

6
"사람이 읽을 수있는"이라는 말은 아이러니합니다. ls -l인간이 아니라면 누가 사용 합니까? : p
Blauhirn

2
@ chengyang : 구문 분석 ls -l출력은 시간의 99 %를 수행하는 잘못된 방법입니다. unix.stackexchange.com/questions/128985/why-not-parse-ls . 이 1 %는 관대하며, 알 수없는 파일 이름에 반복적으로 사용할 스크립트가 아니라 일회용으로 대화식으로 작성하는 1 개의 라이너로 제한됩니다.
Peter Cordes 2019

45

ls -lhS 사람이 읽을 수있는 형식으로 크기별로 정렬


2
ls -lh이것이 실제로 질문에 대답하지 못하는 이유 에 대한 답변에 대한 의견을 참조하십시오 .
Alexander Batischev

2
이것은 실제로 Sirex의 답변에 대한 의견에서 논의 된 것처럼 질문에 대답 할뿐만 아니라 기존 답변과 관련이없는 항목을 추가하지 않습니다 .OP는 정렬 순서에 대해 묻지 않습니다.
CVn

6
크기별로 정렬하는 것은 사람들이 할 수있는 잠재적 인 후속 조치라고 생각했습니다.
jaciefan

1
이 경우 사람들은 크기별로 정렬 된 모든 파일을 정확히 나열하는 방법을 살펴 봐야합니다 .
CVn

나는 그것이 Sirex 답변에 부연 특히이 답변에 대한 가치뿐만 아니라 생각하는
Dowlers

9

그리고 이것은 파일 크기 (사람이 읽을 수있는) 오름차순으로 디렉토리 순서대로 모든 것을 나열하는 옵션입니다.

ls -lSrh

당신 은 질문에 대답하지 않는 다른 답변 의 의견 이 이것에도 적용된다고 생각합니까?
Dan Dascalescu

@ DanDascalescu 아니요. 해당 의견은 도움이되지 않습니다. 문제의 두 가지 답변이 있습니다. 그가 알지 못하는 리눅스 시스템에서 파일 크기를 나열하는 방법을 알아 내려는 해킹으로 내 2 센트.
Dowlers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.