linux必知必会-du命令

du命令

du命令简介

  • du命令是linux系统里的文件大小查看的命令。
  • du命令的应用场景十分广泛:
    • 需要查看单个目录里面多个文件总大小。
    • 需要查看目录中每个文件的大小以及每个子文件夹中文件的大小。
    • 查看日志文件的大小。
    • 查看文件大小并排序,找出最大的或最小的文件。
    • 其它需要统计文件大小的场景。
  • ls,df也有类似的功能,但是du更侧重于文件大小,并且更灵活好用。是运维人员、服务端开发人员以及其他linux用户很好的工具。掌握du命令的用法十分有必要。

du命令的使用

  • 查看帮助
$ du --help                                                                                                                                                                                     
Usage: du [OPTION]... [FILE]...                                                                                                                                                                 
  or:  du [OPTION]... --files0-from=F                                                                                                                                                           
Summarize disk usage of the set of FILEs, recursively for directories.                                                                                                                          
                                                                                                                                                                                                
Mandatory arguments to long options are mandatory for short options too.                                                                                                                        
  -0, --null            end each output line with NUL, not newline                                                                                                                              
  -a, --all             write counts for all files, not just directories                                                                                                                        
      --apparent-size   print apparent sizes, rather than disk usage; although                                                                                                                  
                          the apparent size is usually smaller, it may be                                                                                                                       
                          larger due to holes in ('sparse') files, internal                                                                                                                     
                          fragmentation, indirect blocks, and the like                                                                                                                          
  -B, --block-size=SIZE  scale sizes by SIZE before printing them; e.g.,                                                                                                                        
                           '-BM' prints sizes in units of 1,048,576 bytes;                                                                                                                      
                           see SIZE format below                                                                                                                                                
  -b, --bytes           equivalent to '--apparent-size --block-size=1'                                                                                                                          
  -c, --total           produce a grand total                                                                                                                                                   
  -D, --dereference-args  dereference only symlinks that are listed on the                                                                                                                      
                          command line                                                                                                                                                          
  -d, --max-depth=N     print the total for a directory (or file, with --all)                                                                                                                   
                          only if it is N or fewer levels below the command                                                                                                                     
                          line argument;  --max-depth=0 is the same as                                                                                                                          
                          --summarize                                                                                                                                                           
      --files0-from=F   summarize disk usage of the
                          NUL-terminated file names specified in file F;
                          if F is -, then read names from standard input
  -H                    equivalent to --dereference-args (-D)
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
      --inodes          list inode usage information instead of block usage
  -k                    like --block-size=1K
  -L, --dereference     dereference all symbolic links
  -l, --count-links     count sizes many times if hard linked
  -m                    like --block-size=1M
  -P, --no-dereference  don't follow any symbolic links (this is the default)
  -S, --separate-dirs   for directories do not include size of subdirectories
      --si              like -h, but use powers of 1000 not 1024
  -s, --summarize       display only a total for each argument
  -t, --threshold=SIZE  exclude entries smaller than SIZE if positive,
                          or entries greater than SIZE if negative
      --time            show time of the last modification of any file in the
                          directory, or any of its subdirectories
      --time=WORD       show time as WORD instead of modification time:
                          atime, access, use, ctime or status
      --time-style=STYLE  show times using STYLE, which can be:
                            full-iso, long-iso, iso, or +FORMAT;
                            FORMAT is interpreted like in 'date'
  -X, --exclude-from=FILE  exclude files that match any pattern in FILE
      --exclude=PATTERN    exclude files that match PATTERN
  -x, --one-file-system    skip directories on different file systems
      --help     display this help and exit
      --version  output version information and exit

Display values are in units of the first available SIZE from --block-size,
and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables.
Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).

The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
Binary prefixes can be used, too: KiB=K, MiB=M, and so on.

GNU coreutils online help: 
Full documentation 
or available locally via: info '(coreutils) du invocation'

  • du -h:查看当前目录各文件占用磁盘大小
$ du -h    
8.0K    ./.git/refs/heads
8.0K    ./.git/refs/remotes/origin
12K     ./.git/refs/remotes
4.0K    ./.git/refs/tags
28K     ./.git/refs
4.0K    ./.git/branches
8.0K    ./.git/info
2.0M    ./.git/objects/pack
4.0K    ./.git/objects/info
2.0M    ./.git/objects
8.0K    ./.git/logs/refs/heads
8.0K    ./.git/logs/refs/remotes/origin
12K     ./.git/logs/refs/remotes
24K     ./.git/logs/refs
32K     ./.git/logs
52K     ./.git/hooks
2.1M    ./.git
2.5M    .

  • du -s 查看文件夹总大小
$ du -s .git
2104    .git
  • du -hd1 查看当前目录下各目录文件大小,层级深度为1
$ du -hd1 .git
28K     .git/refs
4.0K    .git/branches
8.0K    .git/info
2.0M    .git/objects
32K     .git/logs
52K     .git/hooks
2.1M    .git
  • du -ah1 查看所有文件大小,深度为1.
$ du -ahd1
4.0K    ./arg.h
20K     ./config.h
2.1M    ./.git
4.0K    ./win.h
4.0K    ./Makefile
4.0K    ./config.mk
4.0K    ./README
56K     ./st.c
20K     ./config.def.h
4.0K    ./TODO
48K     ./x.c
52K     ./x.o
4.0K    ./LICENSE
12K     ./FAQ
52K     ./st.o
4.0K    ./st.1
4.0K    ./st.info
92K     ./st
4.0K    ./st.h
4.0K    ./LEGACY
2.5M    .
  • 查看文件大小并按由大到小的顺序排序
$ du -ahd1 | sort -hr
2.5M    .
2.1M    ./.git
92K     ./st
56K     ./st.c
52K     ./x.o
52K     ./st.o
48K     ./x.c
20K     ./config.h
20K     ./config.def.h
12K     ./FAQ
4.0K    ./win.h
4.0K    ./TODO
4.0K    ./st.info
4.0K    ./st.h
4.0K    ./st.1
4.0K    ./README
4.0K    ./Makefile
4.0K    ./LICENSE
4.0K    ./LEGACY
4.0K    ./config.mk
4.0K    ./arg.h


  • 扫描下方二维码,关注我的公众号,获取更多技术方面的知识
    在这里插入图片描述

你可能感兴趣的:(linux,linux,运维,服务器)