In Linux, the full name of du is "Disk Usage". It is a command to count the disk space occupied by a directory or file. The syntax is "du [option] [directory or file name]". The du command supports a variety of options: 1. "-h", which can display the size in easy-to-read units; 2. "-s", which can display the total size of the directory; 3. "-d", etc.
#The operating environment of this tutorial: linux5.9.8 system, Dell G3 computer.
linux du command
du is the abbreviation of Disk Usage, one of the most popular commands on Linux, du is the statistical directory or file Commands that occupy disk space
du The format of the command is as follows:
du [选项] [目录或文件名]
Commonly used options are as follows:
- a: Display the size of all files and folders in the directory
-h: Display the size in easy-to-read units such as Kb, Mb, Gb, etc.
--si: Similar to the -h option, but the calculation is based on 1000 instead of 1024
-s: Display the total size of the directory
-d: is the abbreviation of the --max-depth=N option, indicating which level of directories to go deep into. Directories exceeding the specified number of levels will be ignored
-c: In addition to displaying the directory size In addition, an extra line displays the total usage
--time: Displays the time of the most recently modified files in each directory
-t: Yes --threshold=Abbreviation for SIZE, filters out files and directories smaller than SIZE
--exclude=PATTERN: Filters out file names or directory names that match PATTERN
Usage example
Display all directories and file sizes
The following example shows The size of all directories and files under the directory, the default unit is Kb
[root@ecs-centos-7 tt]# du -a temp/ 4 temp/suba.txt 4 temp/test/abc.txt 4 temp/test/ha/ha.txt 8 temp/test/ha 16 temp/test 4 temp/time.txt 28 temp/
Note: If the above example does not use the -a option, by default only the directory size will be displayed, not the file size. That is, executing du temp/
will only display the directory size. Please see the following example:
[root@ecs-centos-7 tt]# du temp 8 temp/test/ha 16 temp/test 28 temp
Displayed in an easy-to-read manner
Default display The size only has a single number, not even a unit, which makes people look a little confused at first glance. The -h option can be used to display the size in a human-readable way. This option should be the most commonly used
[root@ecs-centos-7 tt]# du -b temp/ 4117 temp/test/ha 8218 temp/test 12326 temp/ [root@ecs-centos-7 tt]# du -h temp/ 8.0K temp/test/ha 16K temp/test 28K temp/ [root@ecs-centos-7 tt]# du --si temp/ 8.2k temp/test/ha 17k temp/test 29k temp/
In the above example, the default calculation base of the -h option is 1024, and the default calculation base of the --si option is 1000
So temp/test/ha
The size of the directory calculated with the -h option is 8.0K, and the size calculated with the --si option is 8.2K
-h and the size unit of the --si option are automatically adjusted with the size of the directory and file
Total directory size
Sometimes we only need to know the total size of a directory and do not need to know the size of subdirectories and files in subdirectories. We can obtain the total directory size through the -s option
[root@ecs-centos-7 tt]# du -sh . 72K . [root@ecs-centos-7 tt]# du -sh temp/ 28K temp/
The above example obtains the total size of the current directory and the total size of the temp/ directory respectively
The total size of the directory can also be obtained through the -c option, but it displays the subdirectory size first, and the last line displays the total size. The last line of the example below total
The 28K in front of the string indicates the total size of the temp/ directory
[root@ecs-centos-7 tt]# du -ch temp/ 8.0K temp/test/ha 16K temp/test 28K temp/ 28K total
Specify the directory depth
If there are many in one directory Subdirectory, if you only want to display the size of the directory with a specified number of levels, you can use the -d option to achieve the subdirectory structure of
temp/ as follows:
[root@ecs-centos-7 tt]# tree -d temp/ temp/ └── test └── ha 2 directories
Specify the directory depth
[root@ecs-centos-7 tt]# du -d 0 temp/ 28 temp/ [root@ecs-centos-7 tt]# du -d 1 temp/ 16 temp/test 28 temp/ [root@ecs-centos-7 tt]# du --max-depth=2 temp/ 8 temp/test/ha 16 temp/test 28 temp/
du -d 0 temp/
: Displays the 0th level directory, which is the total size of the current directory. This is equivalent to the -s option
du -d 1 temp/
: Display the total size of the first-level directory, that is, the temp/test directory
du --max-depth=2 temp/
: Display the second-level directory, that is, temp/ The total size of the test/ha directory
Display the latest modification time
[root@ecs-centos-7 tt]# du --time temp 8 2020-07-21 20:11 temp/test/ha 16 2020-07-21 20:11 temp/test 28 2020-07-21 20:13 temp
The above example displays the latest modification time of each directory, and the time granularity is only accurate to the minute
If you want to display a finer granularity, you can use the --time-syle=STYLE option to specify the output format of the time, where STYLE represents the formatted output string of the date, and date
The format of the formatted output of the command is the same
Example 1: Display the number of seconds in UTC time (the number of seconds from January 1, 1970 to the present)
[root@ecs-centos-7 tt]# du --time --time-style="+%s" temp/ 8 1595333498 temp/test/ha 16 1595333514 temp/test 28 1595333582 temp/
Example 2: Display the complete Year, month, day, hour, minute and second
[root@ecs-centos-7 tt]# du --time --time-style="+%F %T" temp/ 8 2020-07-21 20:11:38 temp/test/ha 16 2020-07-21 20:11:54 temp/test 28 2020-07-21 20:13:02 temp/
Filter by size
From the displayed results, filter out the directories and files of the specified size
[root@ecs-centos-7 tt]# du -b temp/ 4117 temp/test/ha 8218 temp/test 12326 temp/ [root@ecs-centos-7 tt]# du -b -t 4118 temp/ 8218 temp/test 12326 temp/
above In the example, directories smaller than 4118 bytes are filtered out
Filter by directory name or file name
If there are too many subdirectories in one directory, we can filter based on the subdirectory name Or the file name matches the specified pattern string, thereby filtering out the matching directories and files
[root@ecs-centos-7 tt]# du -a temp 4 temp/suba.txt 4 temp/test/abc.txt 4 temp/test/ha/ha.txt 8 temp/test/ha 16 temp/test 4 temp/time.txt 28 temp [root@ecs-centos-7 tt]# du -a --exclude=*a* temp/ 4 temp/test 4 temp/time.txt 12 temp/
In the above example, the filtered pattern string is: *a*
It means to filter out directories or files whose directory names or file names contain the characters a
. In the example, the directory or file names in the first four lines all contain the characters a
, so they are all filtered. Lost
What are the files that fill up the disk
The problem that developers often encounter is that the disk is full. At this time, we can use du and sort in combination. Find the "culprit"
[root@ecs-centos-7 tt]# du -sh temp/* | sort -hr 10M temp/clpay.tar 16K temp/test 4.0K temp/time.txt 4.0K temp/lnsuba
[root@ecs-centos-7 tt]# du -ah temp/* | sort -hr 10M temp/clpay.tar 16K temp/test 8.0K temp/test/ha 4.0K temp/time.txt 4.0K temp/test/ha/ha.txt 4.0K temp/test/abc.txt 4.0K temp/lnsuba
[root@ecs-centos-7 tt]# du -ah temp/* | sort -hr | head -n 3 10M temp/clpay.tar 16K temp/test 8.0K temp/test/ha
相关推荐:《Linux视频教程》
The above is the detailed content of what is linux du. For more information, please follow other related articles on the PHP Chinese website!