Donate : Link
Medium Blog : Link
Applications : Link
du (disk usage) is a standard Unix program used to estimate file space usage.
The du command can be used to track the files and directories which are consuming excessive amount of space on hard disk drive.
~/codeFactory$ 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).
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report du translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/du>
or available locally via: info '(coreutils) du invocation'
Using du with options:
1. -h: If we want to print sizes in human readable format(K, M, G), use -h option
~/codeFactory$ du -h
512 ./Photos
512 ./Photos and Videos
1.5K ./Download/Dir1
5.0K ./Download
1.5K ./Download2/Dir1
5.0K ./Download2
512 ./Videos
1.5K ./Download1/Dir1
1.5K ./Download1/Download/Dir1
5.0K ./Download1/Download
9.0K ./Download1
5.5K ./Folder1
34K .
2. -a: Use -a option for printing all files including directories.
~/codeFactory$ du -a -h
1.0K ./test2.txt
512 ./Photos
512 ./Photos and Videos
1.0K ./test4.txt
1.0K ./test3.txt
1.0K ./Download/test.txt
1.0K ./Download/test1.txt
1.0K ./Download/Dir1/test.txt
1.5K ./Download/Dir1
1.0K ./Download/test1.txt~
5.0K ./Download
1.0K ./Download2/test.txt
1.0K ./Download2/test1.txt~
1.0K ./Download2/Dir1/test.txt
1.5K ./Download2/Dir1
1.0K ./Download2/test1.txt
5.0K ./Download2
1.0K ./datetest
512 ./Videos
1.0K ./Download1/test1.txt
1.0K ./Download1/Dir1/test.txt
1.5K ./Download1/Dir1
1.0K ./Download1/Download/test.txt
1.0K ./Download1/Download/test1.txt
1.0K ./Download1/Download/Dir1/test.txt
1.5K ./Download1/Download/Dir1
1.0K ./Download1/Download/test1.txt~
5.0K ./Download1/Download
1.0K ./Download1/test.txt
9.0K ./Download1
1.0K ./Folder1/test2.txt
1.0K ./Folder1/test4.txt
1.0K ./Folder1/test3.txt
1.0K ./Folder1/test.txt
1.0K ./Folder1/test1.txt
5.5K ./Folder1
1.0K ./test1.txt
1.0K ./test.txt
34K .
3. -c: Use -c option to print total size
~/codeFactory$ du -c -h
512 ./Photos
512 ./Photos and Videos
1.5K ./Download/Dir1
5.0K ./Download
1.5K ./Download2/Dir1
5.0K ./Download2
512 ./Videos
1.5K ./Download1/Dir1
1.5K ./Download1/Download/Dir1
5.0K ./Download1/Download
9.0K ./Download1
5.5K ./Folder1
34K .
34K total
4. -d: To print sizes till particular level, use -d option with level no.
~/codeFactory$ du -d 1
1 ./Photos
1 ./Photos and Videos
5 ./Download
5 ./Download2
1 ./Videos
9 ./Download1
6 ./Folder1
34 .
~/codeFactory$ du -d 2
1 ./Photos
1 ./Photos and Videos
2 ./Download/Dir1
5 ./Download
2 ./Download2/Dir1
5 ./Download2
1 ./Videos
2 ./Download1/Dir1
5 ./Download1/Download
9 ./Download1
6 ./Folder1
34 .
5. -s: Get summary of file system using -s option
~/codeFactory$ du -s
34
6. –time: Get the timestamp of last modified using –time option
~/codeFactory$ du --time
1 2021-08-16 16:29 ./Photos
1 2021-08-16 16:53 ./Photos and Videos
2 2021-09-04 11:57 ./Download/Dir1
5 2021-09-04 12:16 ./Download
2 2021-09-04 12:34 ./Download2/Dir1
5 2021-09-04 12:34 ./Download2
1 2021-08-16 16:29 ./Videos
2 2021-09-04 11:57 ./Download1/Dir1
2 2021-09-04 12:30 ./Download1/Download/Dir1
5 2021-09-04 12:30 ./Download1/Download
9 2021-09-04 12:30 ./Download1
6 2021-09-04 12:44 ./Folder1
34 2021-09-06 16:44 .

