Tuesday, May 14, 2013

Checking File system / Directory size in Linux : Learn "df -k" or "du -sh"

Check Disk Space with the Commands du and df - Linux

Linux (and Typically all UNIX based or UNIX alike systems including AIX, Solaris, MAc or CentOS) offer
two commands for checking out free disk space.

Now this is a quick post that I call it (Don't know how I missed it till now. Posting on request of an anonymous user)

1. Linux "df" command :
Report file system disk space usage. That is, it shows information about the file system on which each FILE resides, or all file systems by default.

Syntax:  df [OPTION]... [FILE]...
Mandatory arguments to long options are mandatory for short options too.
  -a, --all             include dummy file systems
  -B, --block-size=SIZE  use SIZE-byte blocks
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
  -H, --si              likewise, but use powers of 1000 not 1024
  -i, --inodes          list inode information instead of block usage
  -k                    like --block-size=1K
  -l, --local           limit listing to local file systems
      --no-sync         do not invoke sync before getting usage info (default)
  -P, --portability     use the POSIX output format
      --sync            invoke sync before getting usage info
  -t, --type=TYPE       limit listing to file systems of type TYPE
  -T, --print-type      print file system type
  -x, --exclude-type=TYPE   limit listing to file systems not of type TYPE
  -v                    (ignored)
      --help     display this help and exit
      --version  output version information and exit
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.

EG. I am in a directory. But "df" command has nothing to deal with that. It outputs current OVERALL status of the system and its partitions.



2. Linux "du" command :
Estimate file space usage. That is, it summarize disk usage of each FILE, recursively for directories.

Syntax: du [OPTION]... [FILE]...
Mandatory arguments to long options are mandatory for short options too.
  -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  use SIZE-byte blocks
  -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   summarize disk usage of the NUL-terminated file
                          names specified in file F
  -H                    like --si, but also evokes a warning; will soon
                          change to be 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 FILE, --exclude-from=FILE  Exclude files that match any pattern in FILE.
      --exclude=PATTERN  Exclude files that match PATTERN.
      --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
      --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
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.

EG. I am in a directory. The "du" command tells about that directory. For eg. the following picture directly outputs the total size of that folder.

Hope this acts like a quick guide to men and women trying to play with Linux and other UNIX alike systems.
Cheers :)


Just to add more: Remember 3 important commands when you are sitting on a linux, solaris, AIX, FreeBSD, or Mac Box [Huh, enuff. Just remember Unix :)  ]

1. df
df command can get how much space is occupied and  how much available space

2. du
du is the abbreviation of “disk usage”, this command will progressively into each subdirectory

3. fdisk

fdisk can be used to  manage disk partitions. One can do tasks like create new partition or delete an existing partition