리눅스에서 파일과 디렉토리의 크기를 어떻게 알 수 있습니까?


341

Linux에서 파일 및 디렉토리의 크기를 어떻게 확인할 수 있습니까? 을 사용 df -m하면 최상위 디렉토리의 모든 디렉토리 크기가 표시되지만 디렉토리 내의 디렉토리 및 파일의 경우 크기를 어떻게 확인합니까?

답변:


533

ls파일에는 du명령을, 디렉토리 에는 명령을 사용하십시오 .

파일 크기 확인

ls -l filename   #Displays Size of the specified file
ls -l *          #Displays Size of All the files in the current directory
ls -al *         #Displays Size of All the files including hidden files in the current directory
ls -al dir/      #Displays Size of All the files including hidden files in the 'dir' directory

ls명령은 디렉토리의 실제 크기를 나열하지 않습니다 ( why? ). 따라서 우리 du는이 목적으로 사용 합니다.

디렉토리 크기 확인

du -sh directory_name    #Gives you the summarized(-s) size of the directory in human readable(-h) format
du -bsh *                #Gives you the apparent(-b) summarized(-s) size of all the files and directories in the current directory in human readable(-h) format

를 포함하여 -h위의 명령 중 하나에서 (예를 들어 옵션을 ls -lh *하거나하는 du -sh) 당신에게 사람이 읽을 수있는 형식의 크기를 줄 것이다 ( kb, mb, gb, ...)

자세한 내용은 참조 man lsman du


7
ls디렉토리의 모든 내용의 전체 크기를 표시하지는 않습니다.
Maxim Egorushkin 2016 년

3
@MaximYegorushkin 감사합니다. 수정했습니다.
mk ..

2
바이트 단위의 크기 (Mega, Giga, ...)를 어떻게 확인할 수 있습니까?
Francisco Corrales Morales

7
@FranciscoCorralesMorales ls -lh는 kb MB GB 등의 크기를 보여줍니다.
mk ..

4
du명령은 파일의 디스크 사용량을 보여줍니다. 파일의 실제 크기보다 클 수도 있습니다. du -d실제 크기를 얻는 데 사용할 수 있습니다 ls. 추가 정보 : unix.stackexchange.com/a/106278/155224
Lucas Alonso

148

du명령은.

디렉토리 및 / 또는 파일의 크기 :

$ du -sh .bashrc /tmp

--apparent-size명령 행 스위치는 ls실제 디스크 사용량이 아닌 겉보기 크기 ( 표시되는 내용)를 측정 합니다.


1
바이트 단위의 크기 (Kilo, Mega, Giga, ...)를 어떻게 확인할 수 있습니까?
Francisco Corrales Morales

8
@FranciscoCorralesMorales -h플래그는 요청 한대로 해야합니다 : 사람이 읽을 수있는 형식 (예 : 1K 234M 2G)으로 인쇄 크기
Maxim Egorushkin

3
나는 이것이 옳다고 생각하지 않습니다. 무엇 du않는 것은 파일 세트의 요약한다 디스크 사용량 파일이 매우 작은 (즉 2140 바이트) 인 경우 "뒤"의 출력 즉 클러스터의 크기 때문에 (내 경우) 4킬로바이트입니다
mfloris

@mfloris 그때 사용하십시오 --apparent-size.
Maxim Egorushkin 2016 년

3
du -hs *모든 파일의 크기와 현재 디렉토리의 디렉토리를보고 싶습니다 .
Jordan Stewart

83

ls -s파일 크기를 나열하거나 ls -sh사람이 읽을 수있는 크기 를 선호하는 경우에 사용하십시오 .

디렉토리 사용하기 위해 du, 다시, du -h사람이 읽을 수있는 크기.


7
팁은 사용하는 것입니다. 모든 디렉토리 크기를 나열하려면 'du -sh *'. :)
Entalpi

36

당신이 사용할 수있는:

ls -lh

이 명령을 사용하면 디렉토리의 명백한 공간과 파일의 실제 공간을 볼 수 있으며 각 파일의 크기와 생성 날짜 외에 표시된 파일 이름이 자세히 표시됩니다.


ls -l메타 데이터를 포함하여 u 파일 크기를 제공합니까? 내가 시도한 파일 중 하나에 대해 약간 4kb 더 큰 것 같습니다
Jun711

22

파일 크기 (MB)

ls -l --b=M  filename | cut -d " " -f5

파일 크기 (GB)

ls -l --b=G  filename | cut -d " " -f5

두 필드를 출력으로 얻는 방법은 무엇입니까?
surbhiGoel

17

ncdu유용한 유틸리티 도 있습니다. 하위 폴더 및 파일에 대한 자세한 정보와 함께 디렉토리 크기를 표시 할 수 있습니다.

설치

우분투 :

$ sudo apt-get install ncdu

용법

ncdu [path]명령 행을 입력 하십시오. 경로를 분석하기 위해 몇 초 후에 다음과 같은 내용이 표시됩니다.

$ ncdu 1.11 ~ Use the arrow keys to navigate, press ? for help
--- / ---------------------------------------------------------
.  96,1 GiB [##########] /home
.  17,7 GiB [#         ] /usr
.   4,5 GiB [          ] /var
    1,1 GiB [          ] /lib
  732,1 MiB [          ] /opt
. 275,6 MiB [          ] /boot
  198,0 MiB [          ] /storage
. 153,5 MiB [          ] /run
.  16,6 MiB [          ] /etc
   13,5 MiB [          ] /bin
   11,3 MiB [          ] /sbin
.   8,8 MiB [          ] /tmp
.   2,2 MiB [          ] /dev
!  16,0 KiB [          ] /lost+found
    8,0 KiB [          ] /media
    8,0 KiB [          ] /snap
    4,0 KiB [          ] /lib64
e   4,0 KiB [          ] /srv
!   4,0 KiB [          ] /root
e   4,0 KiB [          ] /mnt
e   4,0 KiB [          ] /cdrom
.   0,0   B [          ] /proc
.   0,0   B [          ] /sys
@   0,0   B [          ]  initrd.img.old
@   0,0   B [          ]  initrd.img
@   0,0   B [          ]  vmlinuz.old
@   0,0   B [          ]  vmlinuz

으로 현재 강조 표시된 요소를 삭제하고 +로 d종료CTRLc


16

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

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

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

이것은 ls 매뉴얼 페이지에 설명되어 있습니다. 을 검색하고 SIZE를 검색하십시오. MB / MiB 이외의 장치도 허용하며, 임의의 블록 크기 (외관을 시도하지는 않음)에서도 볼 수 있습니다 (원하는 경우 파일 크기를 412 바이트 블록 수로 볼 수 있음) 에).

--block-size 매개 변수는 Open Group의 ls 위에있는 GNU 확장이므로 GNU 사용자 영역 (대부분의 Linux 설치)이없는 경우 작동하지 않을 수 있습니다. GNU coreutils 8.5의 ls는 위에서 설명한대로 --block-size를 지원합니다.


13

선택한 디렉토리로 이동하여 다음을 실행하십시오.

$ du -d 1 -h

어디:

-d 1 is the depth of the directories

-h is the human-readable option

당신은 다음과 같이 보일 것입니다 :

0   ./proc
8.5M    ./run
0   ./sys
56M ./etc
12G ./root
33G ./var
23M ./tmp
3.2G    ./usr
154M    ./boot
26G ./home
0   ./media
0   ./mnt
421M    ./opt
0   ./srv
2.6G    ./backups
80G .

9

스크립트에서 사용하는 경우을 사용하십시오 stat.

$ date | tee /tmp/foo
Wed Mar 13 05:36:31 UTC 2019

$ stat -c %s /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 05:36 /tmp/foo

바이트 단위의 크기를 제공합니다. man stat추가 출력 형식 옵션을 참조하십시오 .

OSX / BSD 상당 이다 :

$ date | tee /tmp/foo
Wed Mar 13 00:54:16 EDT 2019

$ stat -f %z /tmp/foo
29

$ ls -l /tmp/foo
-rw-r--r--  1 bruno  wheel  29 Mar 13 00:54 /tmp/foo

8

아래 명령을 사용하면 쉽게 읽을 수있는 형식으로 파일 목록을 얻을 수 있습니다.

ls -lrtsh


7

나는 항상 다음을 수행합니다.

$ du -sh backup-lr-May-02-2017-1493723588.tar.gz

NB :

-s, --summarize
            display only a total for each argument
-h, --human-readable
            print sizes in human readable format (e.g., 1K 234M 2G)

5

디렉토리의 전체 크기 또는 파일 사용의 전체 크기를 얻으려면

du -csh <directory or filename*> | grep total

5

사람이 읽을 수 있도록 -h 인수와 함께 ls 명령을 사용하십시오 . [root @ hots19 etc] # ls -lh
h :

Exemple: 
    [root@CIEYY1Z3 etc]# ls -lh
    total 1.4M
    -rw-r--r--.  1 root   root      44M Sep 15  2015 adjtime
    -rw-r--r--.  1 root   root     1.5K Jun  7  2013 aliases
    -rw-r--r--   1 root   root      12K Nov 25  2015 aliases.db
    drwxr-xr-x.  2 root   root     4.0K Jan 11  2018 alternatives
    -rw-------.  1 root   root      541 Jul  8  2014 anacrontab
    -rw-r--r--.  1 root   root      55M Sep 16  2014 asound.conf
    -rw-r--r--.  1 root   root       1G Oct  6  2014 at.deny

4

저는 Ubuntu 16.04 사용자이며 ll명령이 디렉토리 내용을 보는 가장 쉬운 방법 이라는 것을 알았습니다 . 모든 Linux 배포판에서이 명령을 지원하지는 않지만 각 배포판에 대한 해결 방법 / 설치가있을 수 있습니다.

예:

user@user-XPS-15-9560:/$ ll
total 188
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ./
drwxr-xr-x  27 root root  4096 Jan 26 09:13 ../
drwxr-xr-x   2 root root  4096 Jan 22 15:13 bin/
drwxr-xr-x   4 root root 12288 Jan 29 11:35 boot/
drwxr-xr-x   2 root root  4096 Sep  3 18:14 cdrom/
drwxr-xr-x  20 root root  4440 Feb  5 08:43 dev/
drwxr-xr-x 153 root root 12288 Feb  2 15:17 etc/
drwxr-xr-x   4 root root  4096 Sep  3 18:15 home/
...

나에게 가장 큰 장점은 사용이 빠르고 직관적이라는 것입니다.

업데이트 : 내가 모르는 것은 우분투에서 사전 구성된 별칭이라는 것입니다. alias ll="ls -la"명령 행에서 실행 하거나 .bashrc 구성 파일에이 항목을 추가하여 쉽게 설정할 수 있습니다 .

sudo nano ~/.bashrc
...add line described above and save file by pressing Ctrl+X and Y...
source ~/.bashrc

3

du -sh [file_name]

특정 파일의 크기를 얻기 위해 완벽하게 작동합니다.


3

당신이 필요로하는 것입니다 -l--block-size플래그

작업 디렉토리 아래의 모든 파일 및 디렉토리의 크기 (MB)

ls -l --block-size=M

작업 디렉토리 아래의 모든 파일 및 디렉토리의 크기 (GB)

ls -l --block-size=G

특정 파일 또는 디렉토리의 크기

ls -l --block-size=M my_file.txt
ls -l --block-size=M my_dir/

ls --help

-l 긴 목록 형식을 사용하십시오

--block-size=SIZE: 크기를 SIZE인쇄하기 전에 크기를 조정 합니다. 예를 들어 '--block-size=M'1,048,576 바이트 단위로 크기를 인쇄합니다. 아래 SIZE형식을 참조하십시오

SIZE정수 및 선택적 단위입니다 (예 : 10M은 10 * 1024 * 1024). 단위는 K, M, G, T, P, E, Z, Y (1024의 거듭 제곱) 또는 KB, MB, ... (1000의 거듭 제곱)입니다.



2

파일 크기디스크 사용량 을 다르게해야 합니다 . 이 둘의 주요 차이점은 파일이 "조각으로 자르고"블록으로 저장된다는 사실에서 비롯됩니다.

최신 블록 크기는 4KiB이므로 파일 크기에 관계없이 파일은 4KiB의 여러 디스크 공간을 사용합니다.

이 명령을 사용하면 stat두 그림을 나란히 볼 수 있습니다.

stat file.c

디렉토리를보다 간결하게 보려면을 사용 ls -ls하면 1KiB 단위로 사용할 수 있습니다 .

ls -ls dir

또한 du1KiB 단위 또는 플래그 가있는 dutree 에서 실제 디스크 사용량을 제공합니다 -u.

예 : 1 바이트 파일 사용법

$ echo "" > file.c

$ ls -l file.c
-rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ ls -ls file.c
4 -rw-r--r-- 1 nacho nacho 1 Apr 30 20:42 file.c

$ du file.c
4 file.c

$ dutree file.c
[ file.c 1 B ]

$ dutree -u file.c
[ file.c 4.00 KiB ]

$ stat file.c
 File: file.c
 Size: 1 Blocks: 8 IO Block: 4096 regular file
Device: 2fh/47d Inode: 2185244 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ nacho) Gid: ( 1000/ nacho)
Access: 2018-04-30 20:41:58.002124411 +0200
Modify: 2018-04-30 20:42:24.835458383 +0200
Change: 2018-04-30 20:42:24.835458383 +0200
 Birth: -

또한 최신 파일 시스템 에서는 상황을 더욱 복잡하게하는 스냅 샷, 스파 스 파일 ( 구멍이 있는 파일)을 가질 수 있습니다 .

이 기사에서 자세한 내용을 볼 수 있습니다 : Linux에서 파일 크기 이해


1

리눅스에서 ls -sh를 사용할 수 있습니다. 파일 크기를 확인하려는 디렉토리로 이동해야합니다.


1

특정 디렉토리 로 이동 한 다음 아래 명령을 실행하십시오.

# du -sh * 

4.0K    1
4.0K    anadb.sh --> Shell file
4.0K    db.sh/    --> shell file
24K     backup4/  --> Directory
8.0K    backup6/  --> Directory 
1.9G    backup.sql.gz  --> sql file

0

ncdu여기에서 디스크 사용량 분석기를 사용할 수 있습니다 . ncurses 인터페이스에서 파일 및 디렉토리의 크기를 표시합니다. 각 디렉토리로 이동하여 동일한 인터페이스에서 파일 크기를 볼 수 있습니다.

설치하기 위해서

$ sudo apt-get install ncdu

분석하기

$ ncdu <directory>

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.