Di (command)

From Christoph's Personal Wiki
Revision as of 19:07, 22 November 2013 by Christoph (Talk | contribs) (Example usage)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

di is a disk information utility, displaying everything (and more) that your `df` command does. It features the ability to display your disk usage in whatever format you prefer. It also checks the user and group quotas, so that the user sees the space available for their use, not the system wide disk space.

Example usage

  • Default output:
$ di
Filesystem         Mount               Size     Used    Avail %Used  fs Type 
/dev/sda1          /                 269.8G    69.1G   186.9G   31%  ext4    
udev               /dev                3.7G     0.0G     3.7G    0%  devtmpfs
tmpfs              /run              765.5M     1.1M   764.4M    0%  tmpfs
  • Print all mounted devices (normally, those with 0 total blocks are not printed - e.g. /dev/proc, /dev/fd):
$ di -a
Filesystem         Mount               Size     Used    Avail %Used  fs Type        
/dev/sda1          /                 269.8G    69.1G   187.0G   31%  ext4           
udev               /dev                3.7G     0.0G     3.7G    0%  devtmpfs       
devpts             /dev/pts            0.0M     0.0M     0.0M    0%  devpts         
proc               /proc               0.0M     0.0M     0.0M    0%  proc           
xenfs              /proc/xen           0.0M     0.0M     0.0M    0%  xenfs          
tmpfs              /run              765.5M     1.1M   764.4M    0%  tmpfs          
none               /run/lock           0.0M     0.0M     0.0M    0%  tmpfs          
none               /run/shm            0.0M     0.0M     0.0M    0%  tmpfs          
none               /run/user           0.0M     0.0M     0.0M    0%  tmpfs          
gvfsd-fuse         /run/user/bob       0.0M     0.0M     0.0M    0%  fuse.gvfsd-fuse
sysfs              /sys                0.0M     0.0M     0.0M    0%  sysfs          
none               /sys/fs/cgroup      0.0M     0.0M     0.0M    0%  tmpfs          
none               /sys/fs/fuse/co     0.0M     0.0M     0.0M    0%  fusectl        
none               /sys/kernel/deb     0.0M     0.0M     0.0M    0%  debugfs        
none               /sys/kernel/sec     0.0M     0.0M     0.0M    0%  securityfs
  • Print all fields (used for debugging). Mount points and special device names are printed at full width (note: I have XenServer installed on my machine with a 10.7GB VM "partition", that is why there are three rows for each device instead of two):
$ di -A
Mount fs Type  Filesystem 
	 Options                             
	    Size     Used     Free %Used  %Free 
	    Size     Used    Avail %Used  %Free 
	    Size     Used    Avail %Used  
	   Inodes     Iused     Ifree %Iused
/     ext4     /dev/sda1  
	rw,errors=remount-ro                
	  269.8G    73.9G   195.9G   27%    73%  
	  269.8G    87.6G   182.2G   32%    68%  
	  256.1G    73.9G   182.2G   29%  
	 17973248    458527  17514721    3% 
/dev  devtmpfs udev       
	rw,mode=0755                        
	    3.7G     0.0G     3.7G    0%   100%  
	    3.7G     0.0G     3.7G    0%   100%  
	    3.7G     0.0G     3.7G    0%  
	   973880       600    973280    0% 
/run  tmpfs    tmpfs      
	rw,noexec,nosuid,size=10%,mode=0755 
	  765.5M     1.1M   764.4M    0%   100%  
	  765.5M     1.1M   764.4M    0%   100%  
	  765.5M     1.1M   764.4M    0%  
	   979825       607    979218    0%

man page

Name
       di - disk information

Synopsis
       di  [-AacghHklLmnPqRtZ]	[-B  block-size] [-d display-size] [-f format]
       [-I   include-fstyp-list]   [-s	 sort-type]   [-w   block-width]   [-W
       inode-width]  [-x  exclude-fstyp-list]  [-X debug-level] [-z zone-name]
       [file [...]]

       mi

Description
       di Displays usage information on mounted filesystems.  Block values are
       reported  in  a human readable format.  If the user or group has a disk
       quota, the values reported are adjusted according the quotas that apply
       to the user.

       If  file is specified, the usage information for the partition on which
       file is located is printed.

       Unless the -a flag is specified, the following mounted filesystems will
       not  normally be displayed: filesystems with total space <= 0; loopback
       filesystems that are duplicates of other normally  mounted  filesystems
       (filesystem type of 'lofs' , 'none', or 'nullfs'); loopback filesystems
       that are part of a zone (Solaris).

       Filesystems that the user does not have permissions to access will  not
       be displayed at all.

       mi Displays the mounted filesystem information.

       Several options may be specified to control the output of di and mi:

       -A     Print all fields (used for debugging).  Mount points and special
	      device names are printed at full width.

       -a     (compatibility: --all)
	      Prints all mounted devices (normally, those with 0  total  space
	      are not printed - e.g. /dev/proc, /dev/fd).

       -B     block-size (compatibility: --block-size, -b)
	      Change the base block size from 1024 (default) to the size spec‐
	      ified.  block-size may be  one  of:  k - 1024  bytes,  si - 1000
	      bytes, or a specific size.

       -c     (alias: --csv-output)
	      Comma separated values are output.  The titles are output as the
	      format string specifiers.  Totals are turned off. See  also  the
	      -n flag.

       -d     display-size (alias: --display-size)
	      Display the usage in units specified by display-size.  Note that
	      if the base block size is SI units of 1000  bytes,  the  display
	      size  is	calculated using those units.  display-size may be one
	      of: 512 - POSIX,	k - kilobytes,	m - megabytes,	g - gigabytes,
	      t - terabytes,   p - petabytes,	e - exabytes,  z - zettabytes,
	      y - yottabytes, h - Scaled alternative 1, H - Scaled alternative
	      2, or a specific value to use as the block size.

	      Block display sizes greater than 1024 bytes are displayed with a
	      precision of one decimal place after the radix.

	      The Scaled alternatives scale the sizes displayed and appends  a
	      suffix (e.g. 48.0k, 3.4M).

	      With scaled alternative 1, sizes within a line may scale to dif‐
	      ferent units.

	      Scaled alternative 2 scales all the  sizes  in  each  individual
	      line to the same unit size (the largest needed).

       -f     format  Use  the specified format string format.	See the Format
	      Strings section.

       -g     (alias for: -dg)
	      Display sizes in gigabytes.

       -h     (alias for: -dh)
	      Display partition sizes in scaled alternative 1 format.

       --help
	      Display some basic usage information.

       -H     (alias for: -dH; compatibility: --human-readable)
	      Display partition sizes in scaled alternative 2 format.

       -I     include-fstype-list (compatibility: -F, --type)
	      Include only the file system types listed in include-fstyp-list.
	      The list is a comma separated list of file system types.	Multi‐
	      ple -I options may be specified.	If the 'fuse' filesystem  type
	      is specified, all fuse* filesystems will be included.
	      e.g. -I nfs,tmpfs or -I nfs -I tmpfs.

       --inodes
	      Ignored.	Use the -f option.

       -k     (alias for: -dk)
	      Display sizes in Kbytes.

       -l     (compatibility: --local)
	      Display only local file systems.

       -L     Turn  off  check for duplicate filesystems (loopback (lofs/none)
	      mounts).

       -m     (alias for: -dm)
	      Display sizes in megabytes.

       -n     Do not print a header line above the list of file systems.  Use‐
	      ful when parsing the output of di.

       --no-sync
	      Ignored.

       -P     (compatibility: --portability)
	      Output  format  is  POSIX  standard.  512 byte block size is the
	      default.	The -k option may be used.

       --print-type
	      Ignored.	Use the -f option.

       -q     Disable quota checks.

       -R     (also: --dont-resolve-symlinks)
	      Do not resolve symlinks (for mount points that have  a  trailing
	      UUID).

       -s     sort-type
	      Use  sort-type to sort the output.  The output of di is normally
	      sorted by mount point.  The following sort flags may be used  to
	      change  the  sort order: m - by mount point (default); n - leave
	      unsorted (as it appears in the mount  table);  s	-  by  special
	      device name; t - by filesystem type; r - reverse the sort order.

	      These  sort  options  may  be  combined  in any order.  e.g.: di
	      -stsrm - by type, special, reversed mount; di -strsrm - by type,
	      reversed special, mount.

       --si   An alias for -dH -Bsi.

       --sync Ignored.

       -t     (compatibility: --total)
	      Print  a	totals	line  below  the list of file systems.	Pooled
	      filesystems (zfs, advfs) have only the main pool	added  to  the
	      total.   It  is  up to the user to exclude (using the -x option)
	      read-only filesystems (cdfs, iso9660), swap-based  (memfs,  mfs,
	      tmpfs)  filesystems and user (fuse*) filesystems.  Excluding the
	      'fuse' filesystem will exclude all fuse* filesystems.

       -w     block-width
	      Set the print width for block values.  The default is eight.

       -v     Ignored.

       --version
	      Display di's version and default format string.

       -W     inode-width
	      Set the print width for inode values.  Default is seven.

       -x     exclude-fstype-list (compatibility: --exclude-type)
	      Exclude the file system types listed in exclude-fstyp-list.  The
	      list  is	a comma separated list of file system types.  Multiple
	      -x options may be specified.  If the 'fuse' filesystem  type  is
	      excluded,  all  fuse*  filesystems  will	be  excluded.  e.g. -x
	      nfs,tmpfs or -x nfs -x tmpfs.

       -X     level
	      Set the program's debugging level to debug-level.

       -z     zone-name
	      Display the filesystems for the specified zone.  The  zone  must
	      be visible to the user.

       -Z     (alias for: -z all)
	      Display the filesystems for all visible zones.

Format Strings
       The output of di may be specified via a format string.  This string may
       be given either via the -f command  line  option  or  as  part  of  the
       DI_ARGS	environment  variable.	The format string may specify the fol‐
       lowing columns:

       m      Print the name of the mount point.

       M      Print the name of the mount point, at full  length.   The  mount
	      point  is formatted to the maximum width necessary for the long‐
	      est mount point name.

       s      Print the file system  name  (special  device  or  remote  mount
	      point).

       S      Print  the  file	system	name  (special	device or remote mount
	      point), at full length.  The file system name  is  formatted  to
	      the maximum width necessary for the longest file system name.

       t      Print the file system type.

       T      Print the file system type at full length.  The file system type
	      is formatted to the maximum width necessary for the longest file
	      system type.

       Total Available

       b      Print the total number of megabytes on the file system.

       B      Print the total number of megabytes on the file system available
	      for use by normal users.

       In Use

       u      Print the number of megabytes in use on the file system  (actual
	      number of megabytes used = total - free).

       c      Print  the  number  of megabytes not available for use by normal
	      users (total - available).

       Free

       f      Print the number of free (unused) megabytes on the file system.

       v      Print the number of megabytes available for use by normal users.

       Percentage Used

       p      Print the percentage of megabytes not available for use by  nor‐
	      mal  users  (number  of  megabytes not available for use / total
	      disk space).

       1      Print the percentage of total megabytes in use (actual number of
	      megabytes used / total disk space).

       2      Print the percentage of megabytes in use, BSD-style.  Represents
	      the percentage of user-available space in use.  Note that values
	      over  100%  are possible (actual number of megabytes used / disk
	      space available to non-root users).

       Percentage Free

       a      Print the percentage of megabytes available for  use  by	normal
	      users  (number  of  megabytes  available	for  use  / total disk
	      space).

       3      Print the percentage of total megabytes free (actual  number  of
	      megabytes free / total disk space).

       Inodes

       i      Print  the  total number of file slots (inodes) that can be cre‐
	      ated on the file system.

       U      Print the number of file slots in use.

       F      Print the number of file slots available.

       P      Print the percentage of file slots in use.

       Mount Information

       I      Print the time the filesystem was mounted.  This column  is  not
	      supported on all systems.

       O      Print the filesystem mount options.

       The default format string for di is smbuvpT.

       The default format string for mi is MSTIO.

       The  format  string  may  also  contain	any other character not listed
       above.  The character will be printed as is.  e.g. di  -f  'mbuvp|iUFP'
       will  print  the character '|' between the disk usage and the file slot
       usage.  The command sequence:
	      di -f 'mbuvp
	      miUFP'
       will print two lines of data for each filesystem.

Examples
       Various df equivalent format strings for System V release 4 are:
	      /usr/bin/df -v	 di -P -f msbuf1
	      /usr/bin/df -k	 di -dk -f sbcvpm
	      /usr/ucb/df	 di -dk -f sbuv2m
       GNU df:
	      df		 di -dk -f SbuvpM -w 10
	      df -T		 di -dk -f STbuvpM -w 10
       AIX df:
	      df		 di -d 512 -f Sbf1UPM -w 10
	      df -I		 di -d 512 -f Sbuf1M
	      df -I -M		 di -d 512 -f SMbuf1 -w 10
       HP-UX bdf:
	      bdf		 di -d k -f Sbuv2M
	      bdf -i		 di -d k -f Sbuv2UFPM

       If you like your numbers to add up/calculate the percentage  correctly,
       try one of the following format strings:

	      di -f SMbuf1T
	      di -f SMbcvpT
	      di -f SMBuv2T

Environment Variables
       The  DI_ARGS  environment  variable may be used to specify command line
       arguments.  e.g. If you always want gigabytes  displayed,  set  DI_ARGS
       equal to "-dg".	Any command line arguments specified will override the
       DI_ARGS environment variable.

       The DI_LOCALE_DIR environment variable may be used to specify the loca‐
       tion of the di program's locale message files.

       The  GNU  df  POSIXLY_CORRECT,  and DF_BLOCK_SIZE and the BSD BLOCKSIZE
       environment variables are honored.

Note
       For filesystems that do not  report  available  space  (e.g.  System  V
       release 3), the number of available space is set to the free space.

WARNING
       Do not replace your system's df command with this program.  You will in
       all likelihood break your installation procedures.

See Also
       df(1),  fstab(5),  getmnt(2),   getmntinfo(2),	mnttab(4),   mount(1M)
       statfs(2), statvfs(2)

Bugs
       Send bug reports to: brad.lanam.di_at_gmail.com

Website
       http://www.gentoo.com/di/

Author
       This program is Copyright 1994-2011 by Brad Lanam.

       Brad Lanam, Walnut Creek, CA (brad.lanam.di_at_gmail.com)

External links