ls-command : 파일 크기를 MB 단위로 표시하는 방법은 무엇입니까?


161

Unix (Tru64)에서 ls명령이 파일 크기 (MB)를 표시 하도록하려면 어떻게합니까 ? 현재 다음을 사용하여 바이트로 표시 할 수 있습니다.

ls -la

답변:


247

아마도 -h당신에게 충분할 것입니다 :

-h
-l 옵션과 함께 사용하는 경우 크기에 기본 2를 사용하여 자릿수를 3 이하로 줄이려면 바이트, 킬로바이트, 메가 바이트, 기가 바이트, 테라 바이트 및 페타 바이트와 같은 단위 접미사를 사용하십시오.

ls -lah

일반적인 조언 : man commandname특정 명령의 매뉴얼 / 도움말을 읽는 데 사용하십시오 (예 : here) man ls.


1
감사하지만 Tru64 Unix에는 -h 옵션이없는 것 같습니다.

8
일반적인 조언 : GNU 유틸리티 설치 ...
reinierpost

22
man 사용에 대한 팁이 마음에 들지만 실제로는 Google에서 검색하는 것이 man을 사용하는 것보다 훨씬 빠릅니다 (현재 Google에서이 결과를 찾은 시점).
trusktr

4
Google은 일반적으로 유용한 힌트를 제공하지만, 궁극적으로 매뉴얼 페이지는 시스템 / OS이며 호스트별로도 특정 소프트웨어를 컴파일하거나 설치할 때 생성되므로 특정 시스템의 소프트웨어에 대한 권한이 있습니다.
Nevin Williams

1
전체 서클에 오려면
MariusMatutiae

32

ls --block-size=M크기를 메가 바이트 단위로 인쇄하지만 1MB 미만의 경우 1MB를 표시합니다. 그래도 UNIX 버전의 ls 에서이 옵션을 사용할 수 있는지 확실하지 않습니다.

실제로 ls -lh파일이 충분히 크면 실제로 기가 바이트 단위로 크기를 인쇄합니다 (어쨌든 Linux 64 비트에서는 작동합니다 :>)

사이드 노드에서 : du -sh *현재 디렉토리의 디렉토리 크기도 인쇄합니다.


감사! 폴더에서 라이브 파일 변경 사항을 모니터링해야 ls -h했으며 파일이 1GB 이상 while true ; do ls -al --block-size=M ; sleep 1 ; done
증가한

15

당신은 당신을 위해 awk수학을 수행해야합니다 :

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

이보다 작은 파일의 출력에는 영향을 미치지 않습니다 mega.

ls배치 방법에 맞게 필드 번호를 조정해야 할 수도 있습니다 . mega선호하는 경우 "1000000"으로 변경할 수 있습니다 .

이것은 당신이 원하는 것보다 더 많은 소수점 자리를 인쇄합니다. 반올림 함수를 구현할 수 있습니다.


3
ls -lh또는 보다 우아 ls --block-size=M하지는 않지만 AWK는 매우 유용합니다!
Statwonk

내가 필요한 것만 다른 모든 솔루션은 가장 가까운 MB로 반올림하지만 소수 자릿수를 표시하고 쉽게 사용자 지정할 수 있습니다.
zeroimpl

3
이것은 -h 옵션이없는 시스템 (AIX-보고 있습니다)에 대한 좋은 솔루션입니다.
Buggabill


8

시도해보십시오 ls -lash, 사람이 읽을 수있는 형식으로 크기를 인쇄합니다


5

du -sm filename.txt


1
크기는 항상 반올림합니다. 크기가 1MB 미만인 경우 500K라고 말하면 1M을 인쇄합니다.
AnonGeek

5

입력 할 수도 있습니다

du -sh ./*

Kb, Mb, Gb에서보다 친숙한 파일 크기를 포함하여 사람이 읽을 수있는 형식으로 현재 디렉토리 아래의 모든 폴더가 나열됩니다.


2

특정 파일의 크기 만 원한다면 이전 답변의 사소한 외삽 명령은 다음과 같습니다.

ls -sh 파일 이름

-s크기이며 크기 h는 인간 판독 가능입니다 (위에서 몇 번 언급했듯이).

결과는 다음과 같습니다.

753M myfilename

파일 이름을 생략하면 파일 ls -la이름 인수없이 호출 될 때 와 달리 파일 이름 옆에 각 파일의 크기를 배치하여 디렉토리를 나열합니다 .

도움이 되었기를 바랍니다.


2
이 질문은 Tru64 Unix에 관한 것이며 OP는 거의 5 년 전에 해당 시스템에 -h옵션이 존재하지 않는다고 언급했습니다 ls.
G-Man

2
ls -l --block-size=MB 

에 대한 --block-size매개 변수 :

  • 사용 MB10 ^ 6
  • M2 ^ 20 에만 사용

이 있습니다 어떤 소수 자릿수를 표시하지 않습니다 . 또한 0kB보다 크지 만 1MB보다 큰 것은로 표시됩니다1MB . 이런 이유로 나는 ls -l --block-size=kB더 유용하다는 것을 알았 습니다.
DaAwesomeP

0

파일 크기에만 관심이 있고 ls명령 을 사용할 필요가 없으면 다음을 시도하십시오.

# echo "Hello World" > file.txt
# ls -l file.txt 
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12

이것은 파싱 할 필요없이 파일 크기를 인쇄합니다.


OP는 MB 단위의 크기를 원합니다. 통계 옵션은 사람이 읽을 수있는 형태로 크기를 생성합니까?
Archemar

아, 그건 바보 야 찾아 주셔서 감사합니다. stat에는 --printf 또는 다른 옵션을 사용하여 크기를 조작하는 옵션이 없습니다. printf와 bc 명령 줄 유틸리티를 함께 사용해야합니다. 어떤 경우에는 왜 귀찮게합니까? ls 및 cut / awk가 더 빠릅니다.
SKN
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.