使用du命令查找Linux中文件和目录的大小
du(或“diskusage”)命令是一个Linux命令,它可以打印目录中的文件列表,包括它们的大小,甚至可以汇总这些信息。如果您想查看一组文件有多大,并提供比ls命令更多的有关目录的信息,那么它非常有用。
在目录中使用du将显示该目录下所有文件和目录的大小(以字节为单位),包括当前目录的大小。要使du产生更可读的结果,只需使用-h标志将文件大小设置为可读格式。您还可以使用-c标志生成找到的所有大小的总计,-s标志仅显示总计。-a标志可以用来显示所有的文件和目录,去掉它只显示目录。
第一次在目录上使用du时,它将花费比后续运行更长的时间,因为每个大小分析的结果都会被缓存。
这是du命令在使用中的一些示例。
以人类可读的格式获取当前目录下目录的大小。
$ du -h 2.2M ./directory 2.4M .
以人类可读的格式获取当前目录下所有文件和目录的大小。
$ du -ha 2.0M ./directory/file5.txt 184K ./directory/file4.txt 2.2M ./directory 4.0K ./script.php 4.0K ./file2.txt 0 ./empty.file 4.0K ./file1.txt 184K ./file3.txt 2.4M .
显示当前目录下所有文件和目录的大小的摘要。
$ du -s 2420 .
以易于阅读的格式显示当前目录下所有文件和目录的大小的摘要。
$ du -sh 2.4M .
查看特定类型的所有文件的大小以及找到的文件的总大小。
$ du -cha *.php 4.0K script.php 4.0K total
以易于阅读的格式查看当前目录中所有文件和目录的大小。
$ du -sh * 2.2M directory 0 empty.file 4.0K file1.txt 4.0K file2.txt 184K file3.txt 4.0K script.php
以易于阅读的格式查看当前目录中所有文件和目录的大小,以及找到的总大小。
$ du -csh * 2.2M directory 0 empty.file 4.0K file1.txt 4.0K file2.txt 184K file3.txt 4.0K script.php 2.4M total
以易于阅读的格式查看当前目录中所有文件和目录的大小,并按大小对输出进行排序。
$ du -hs * | sort -h 0 empty.file 4.0K file1.txt 4.0K file2.txt 4.0K script.php 184K file3.txt 2.2M directory
这是此命令可用标志的列表。您可以使用--help标志在系统上看到此列表。
-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 --files0-from=F summarise 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) --si like -h, but use powers of 1000 not 1024 -k like --block-size=1K -l, --count-links count sizes many times if hard linked -m like --block-size=1M -L, --dereference dereference all symbolic links -P, --no-dereference don't follow any symbolic links (this is the default) -0, --null end each output line with 0 byte rather than newline -S, --separate-dirs do not include size of subdirectories -s, --summarize display only a total for each argument -x, --one-file-system skip directories on different file systems -X, --exclude-from=FILE exclude files that match any pattern in FILE --exclude=PATTERN exclude files that match PATTERN -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 --summarise --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 STYLE: full-iso, long-iso, iso, +FORMAT FORMAT is interpreted like `date' --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). SIZE may be (or may be an integer optionally followed by) one of following: KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.