Many times do you want to know the size of a directory. The most common Linux command is du.
We will list some examples. At the end of the post, you can see the du syntax.
– get the size of a specific directory/file
root@web [~]# du -sh path-to-directory-or-file/
root@web [~]# du -sh public_html
8.0K public_html
root@web [~]#
– get the size of the current directory
root@web [~]# du -sh
root@web [~]# du -sh
37M .
root@web [~]#
– get the size for files and folders in the current directory; or you can choose the depth=2,3 etc
root@web [~]# du -ah --max-depth=1
root@web [~]# du -ah --max-depth=1
4.0K ./.libnet-openssh-perl
4.0K ./.rnd
4.0K ./.lesshst
44K ./.bwusage.sqlite
40K ./php.ini.orig
4.0K ./perl5
4.0K ./out
588K ./support
388K ./.cpanm
4.0K ./error_log
4.0K ./.accesshash
.....
– get the s size of files and folders with the date they were last modified
root@web [~]# du -ah --max-depth=1 --time
root@web [~]# du -ah --max-depth=1 --time
4.0K 2015-08-25 03:01 ./.libnet-openssh-perl
4.0K 2017-05-27 07:04 ./.rnd
4.0K 2017-05-27 14:37 ./.lesshst
44K 2016-01-04 01:15 ./.bwusage.sqlite
40K 2016-08-09 05:00 ./php.ini.orig
4.0K 2015-09-23 13:46 ./perl5
4.0K 2015-11-09 13:47 ./out
588K 2016-12-08 14:21 ./support
388K 2015-09-22 13:37 ./.cpanm
4.0K 2017-03-16 12:53 ./error_log
4.0K 2015-08-24 11:33 ./.accesshash
......
– sort subdirectories by size
root@web [~]# du -h --max-depth=1 | sort -hr
root@web [~]# du -h --max-depth=1 | sort -hr
37M .
14M ./.cpanel
2.2M ./.spamassassin
2.1M ./tmp
748K ./.MirrorSearch
588K ./support
388K ./.cpanm
40K ./.gnupg
20K ./.cpobjcache
20K ./.HttpRequest
12K ./cpanel3-skel
8.0K ./public_html
8.0K ./.pki
4.0K ./public_ftp
4.0K ./perl5
4.0K ./.ssh
4.0K ./.libnet-openssh-perl
root@web [~]#
If you have a lot of files/directories use du | more or du | less commands.
The syntax for the du command is:
root@web [~]# du --help
Usage: du [OPTION]... [FILE]...
or: du [OPTION]... --files0-from=F
Summarize disk usage of each FILE, recursively for directories.
Mandatory arguments to long options are mandatory for short options too.
-0, --null end each output line with 0 byte rather than 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).
SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
GNU coreutils online help: http://www.gnu.org/software/coreutils/
Report du translation bugs to http://translationproject.org/team/
For complete documentation, run: info coreutils 'du invocation'
root@web [~]#