Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
UNITS(1)		  BSD General Commands Manual		      UNITS(1)

     units -- conversion program

     units [-f filename] [-qv] [from-unit to-unit]

     The following options are available:

     -f	filename
	     Specify the name of the units data	file to	load.

     -q	     Suppress prompting	of the user for	units and the display of sta-
	     tistics about the number of units loaded.

     -v	     Print the version number.

     from-unit to-unit
	     Allow a single unit conversion to be done directly	from the com-
	     mand line.	 The program will not print prompts.  It will print
	     out the result of the single specified conversion.

     The units program converts	quantities expressed in	various	scales to
     their equivalents in other	scales.	 The units program can only handle
     multiplicative or affine scale changes.  It works interactively by
     prompting the user	for input:

	 You have: meters
	 You want: feet
		 * 3.2808399
		 / 0.3048

	 You have: cm^3
	 You want: gallons
		 * 0.00026417205
		 / 3785.4118

	 You have: meters/s
	 You want: furlongs/fortnight
		 * 6012.8848
		 / 0.00016630952

	 You have: 1|2 inch
	 You want: cm
		 * 1.27
		 / 0.78740157

	 You have: 85 degF
	 You want: degC

     Powers of units can be specified using the	'^' character as shown in the
     example, or by simple concatenation: 'cm3'	is equivalent to 'cm^3'.  Mul-
     tiplication of units can be specified by using spaces, a dash or an as-
     terisk.  Division of units	is indicated by	the slash ('/').  Note that
     multiplication has	a higher precedence than division, so 'm/s/s' is the
     same as 'm/s^2' or	'm/s s'.  Division of numbers must be indicated	using
     the vertical bar ('|').  To convert half a	meter, you would write '1|2
     meter'.  If you write '1/2	meter' then the	units program would interpret
     that as equivalent	to '0.5/meter'.	 If you	enter incompatible unit	types,
     the units program will print a message indicating that the	units are not
     conformable and it	will display the reduced form for each unit:

	 You have: ergs/hour
	 You want: fathoms kg^2	/ day
	 conformability	error
		 2.7777778e-11 kg m^2 /	sec^3
		 2.1166667e-05 kg^2 m /	sec

     The conversion information	is read	from a units data file.	 The default
     file includes definitions for most	familiar units,	abbreviations and met-
     ric prefixes.  Some constants of nature included are:

	   pi	      ratio of circumference to	diameter
	   c	      speed of light
	   e	      charge on	an electron
	   g	      acceleration of gravity
	   force      same as g
	   mole	      Avogadro's number
	   water      pressure per unit	height of water
	   mercury    pressure per unit	height of mercury
	   au	      astronomical unit

     The unit 'pound' is a unit	of mass.  Compound names are run together so
     'pound force' is a	unit of	force.	The unit 'ounce' is also a unit	of
     mass.  The	fluid ounce is 'floz'.	British	units that differ from their
     US	counterparts are prefixed with 'br', and currency is prefixed with its
     country name: 'belgiumfranc', 'britainpound'.  When searching for a unit,
     if	the specified string does not appear exactly as	a unit name, then
     units will	try to remove a	trailing 's' or	a trailing 'es'	and check
     again for a match.

     To	find out what units are	available read the standard units file.	 If
     you want to add your own units you	can supply your	own file.  A unit is
     specified on a single line	by giving its name and an equivalence.	Be
     careful to	define new units in terms of old ones so that a	reduction
     leads to the primitive units which	are marked with	'!' characters.	 The
     units program will	not detect infinite loops that could be	caused by
     careless unit definitions.	 Comments in the unit definition file begin
     with a '/'	character at the beginning of a	line.

     Prefixes are defined in the same was as standard units, but with a	trail-
     ing dash at the end of the	prefix name.  If a unit	is not found even af-
     ter removing trailing 's' or 'es',	then it	will be	checked	against	the
     list of prefixes.	Prefixes will be removed until a legal base unit is

     Here is an	example	of a short units file that defines some	basic units.

	   m	     !a!
	   sec	     !b!
	   micro-    1e-6
	   minute    60	sec
	   hour	     60	min
	   inch	     0.0254 m
	   ft	     12	inches
	   mile	     5280 ft

     /usr/share/misc/units.lib	the standard units library

     Adrian Mariano <>

     The effect	of including a '/' in a	prefix is surprising.

     Exponents entered by the user can be only one digit.  You can work	around
     this by multiplying several terms.

     The user must use | to indicate division of numbers and / to indicate di-
     vision of symbols.	 This distinction should not be	necessary.

     The program contains various arbitrary limits on the length of the	units
     converted and on the length of the	data file.

     The program should	use a hash table to store units	so that	it does	not
     take so long to load the units list and check for duplication.

BSD				 July 14, 1993				   BSD


Want to link to this manual page? Use this URL:

home | help