bestfit man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

bestfit(1)							    bestfit(1)

NAME
       bestfit - Optimally choose files to be put on a CD (or other media)

SYNOPSIS
       bestfit [OPTION]... FILE... [-e COMMAND...]

DESCRIPTION
       This  manual page document describes the bestfit command.  Bestfit is a
       small program to determine which files that should be put on a  CD  (or
       other  media),  so  that	 as little space as possible is wasted.	 It is
       very easy to use: you specify files on the command  line,  and  bestfit
       prints  the  names  of those that were selected. Alternatively, bestfit
       can execute a command for each selected file (e.g. to move  them	 to  a
       different directory).

       This  problem  is also known as the 0-1 knapsack problem. The algorithm
       implemented by bestfit solves instances of it optimally	in  theta(n*W)
       time,  where n is number of files to choose between and W the amount of
       free space. This may sound bad but since W is number of blocks and  not
       bytes, this algorithm is not that inefficient. Try it yourself and see.

       Due  to	the  nature  of this algorithm, bestfit uses a lot of memory -
       approximately 1.5M per file specified on command line. As long  as  you
       have  enough  swap  space,  this is usually not a problem since bestfit
       doesn't use all at the same time.

       Bestfit does (at this time)  not	 use  any  external  program  such  as
       mkisofs	or  mkhybrid  to calculate the size of files. Instead the file
       and directory sizes and rounded up towards the nearest 2048-byte multi‐
       ple and added together. (2048 bytes is the block size on ISO images.)

       Bestfit can not account for all oddities with ISO images (for instance,
       there are multiple path tables, padding, etc which is not easy to  cal‐
       culate),	 therefore  exact  results can not always be produced. Bestfit
       may waste more space than necessary, or even tell you that  files  that
       won't fit actually fits. (I consider the latter to be a bug though.  If
       you encounter it, please mail me.) In other words,  manually  selecting
       files  and  checking that they fit using mkisofs may in some cases give
       you better results than using bestfit.

OPTIONS
       These programs follow the usual GNU  command  line  syntax,  with  long
       options	starting  with	two  dashes  (`-').   A	 summary of options is
       included below.

       -8, --80min
	      Space is that of an empty 80 min CD. This is the default.

       -7, --74min
	      Space is that of an empty 74 min CD.

       -d, --dirs-only
	      Ignore all non-directory arguments. (This is useful when includ‐
	      ing files using wildcard/glob patterns.)

       -s, --space=BLOCKS
	      The maximum amount of space allowed to use, in blocks.

       -r, --reserve=BLOCKS
	      The  number  of blocks to reserve (usually 200 by default). This
	      value is simple substracted from	the  space  value  before  the
	      algorithm is started.

       -e, --execute COMMAND...
	      Execute  a  command  for each selected file, instead of printing
	      the name on screen. All following arguments after --execute  (or
	      -e) are taken to be arguments to the command to execute for each
	      selected file. The string `{}' is replaced by the	 current  file
	      name being processed, and can be used multiple times.

	      If  --invert  is	used as well as --execute, the command is exe‐
	      cuted for files that weren't selected instead.

       -i, --invert
	      Print names of those files that weren't selected (i.e.  did  not
	      fitting) instead.

       -v, --verbose
	      Explain what is being done.

       -q, --quiet
	      Output  no  diagnostic/information messages. (Error messages are
	      still printed.)

       -h, --help
	      Show summary of options.

       -v, --version
	      Output version information and exit.

EXAMPLES
       Assume we want burn the following directories on a CD:

	 /store/dir1  40M
	 /store/dir2  67M
	 /store/dir3  38M
	 /store/dir4  112M
	 /store/dir5  130M
	 /store/dir6  82M
	 /store/dir7  240M
	 /store/dir8  56M
	 /store/dir9  94M

       These files won't fit on an 80 min CD so we need to burn them  on  two.
       We can have bestfit determine which files to burn on the first CD:

	 $ bestfit /store/dir*
	 /store/dir2
	 /store/dir4
	 /store/dir5
	 /store/dir7
	 /store/dir8
	 /store/dir9
	 used 357888 of 439808 blocks (699.0M of 859.0M)
	 wasted 1912 of 359800 blocks (3.7M of 702.7M)

       Now maybe we want to move these files to another directory. bestfit can
       do this too:

	 $ bestfit /store/dir* -e mv -i {} /store/to-burn/
	 used 357888 of 439808 blocks (699.0M of 859.0M)
	 wasted 1912 of 359800 blocks (3.7M of 702.7M)
	 $ ls /store/to-burn/foo
	 /store/dir2
	 /store/dir4
	 /store/dir5
	 /store/dir7
	 /store/dir8
	 /store/dir9

       The -i option was added to make move  interactive,  so  that  we	 won't
       overwrite  files by mistake. Note that we don't need to terminate best‐
       fit's options using --, because -e stops bestfit from  reading  further
       options.

AUTHOR
       bestfit was written by Oskar Liljeblad <oskar@osk.mine.nu>.

				April 23, 2001			    bestfit(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net