The ^DUPFIL^ utility is designed to assist in the process of reclaiming
disk space by locating ^duplicate files^ by ^file name^ or by ^hash code^
totals. ^DUPFIL^ provides information about file duplications so that
the system operator can make an intelligent decision on which duplicate
file to remove to ^free^ up disk space.
^DUPFIL^ outputs to a file, a listing of ^identical^ or ^similar^ files.
^Identical^ files are those that have the same hash code totals and may
or may not have the same file name.
^Similar^ files can be defined as those that have the same file name
but may or may not have different hash code totals.
Not all ^file duplication^ is bad. Depending upon your situation and
system set up, it may be necessary to ^have^ duplicate files or
different version of certain programs located in different accounts.
The culprit we are after is the ^unnecessary^ duplication of files.
\
^% DUPFIL Utility %^ Page 2 of 13
Usage:
^DUPFIL^ {listfile=} wild-spec(s) {switches}
Where:
^listfile^ = The file specification where the resulting
information is output is to. The default output is
to the ^DUPFIL.LST^ file.
^wildspec^ = The wildcard file specification(s) defines which
files are to be examined (just like DIR)
Examples:
^switches^ = Optional operation switches as explained below.
\
^% DUPFIL Switches %^ Page 3 of 13
The following switches are supported:
/^BYNAME^ This ON/OFF switch controls file name and extension
sensitivity. The default is ON (/BYNAME) which will
report files of the same or duplicate names. If this
switch is turned OFF (/NOBYNAME), then the /BYHASH
switch is automatically turned on.
/^BYHASH^ This ON/OFF switch controls hash total sensitivity
which will report files with the same hash totals.
When the /BYHASH switch is used, the /HASH switch is
automatically implied. If this switch is turned OFF
(/NOBYHASH), then the /BYNAME switch is automatically
turned on.
/^HASH^ In conjunction with /BYNAME, this switch controls
file hash code sensitivity. This will output names of
files that are duplicated along with the HASH total
of each file. The default is /NOHASH (off). /HASH is
automatically on with the /BYHASH option. The action
of /BYNAME and /HASH are best described as a table:
^% DUPFIL Utility %^ Page 4 of 13
^/BYNAME /HASH Action^
====== ======= ===============================
Default-> ^ON^ OFF Identically named files reported.
^ON ON^ Same name files reported w/hash.
OFF OFF Impossible combination.
OFF ^ON^ Files w/same hash code reported.
/^VERSION^ This ON/OFF switch controls reporting of version
numbers. If /VERSION is specified, the version
number of each reported file is given (if available).
The default is /VERSION (On).
/^BLOCKS^ This ON/OFF switch controls the reporting of file
sizes (in blocks). If /BLOCKS is specified, the size
of each reported file in number of blocks will be
given. The default is /BLOCKS (On).
/^TOTAL^ Controls reporting of file and block totals at the
end of each matching set and at the end of the
listing. The default is /TOTAL (On).
^% DUPFIL Utility %^ Page 5 of 13
/^ASCEND^ Controls reporting sequence. /ASCEND causes files of
the same name or the same hash totals, to be reported
in ascending size sequence. /NOASCEND causes files to
be reported in descending size sequence. The default
is /ASCEND (on).
/^TYPE^ Controls the reporting of the file's type (^R^)andom or
(^S^)equential). The default is /TYPE (On). Use /NOTYPE to
disable the reporting of file types. When the /TYPE
switch is used, the letter ^R^ will be output for a
Random file and the letter ^S^ will be output for a
Sequential file.
/^MIN:^n Reports only those files of (^n^) size or greater. The
default value is ^0^. Any file, with a Block size
smaller than the indicated "^n^" size, will be ignored.
\
^% DUPFIL Utility %^ Page 6 of 13
/^MAX:^n Reports only those files of (^n^) size or less. The
default value is the largest possible size of any
AMOS file (2.x extended directory limit). Any file,
with a Block size Greater than "^n^" size, will be
ignored.
/^KILL^ Deletes the output file if it already exists. If you
specify an output file specification that already
exists, ^DUPFIL^ will ^not^ delete the existing file
unless the /KILL switch is set. The default is
/NOKILL (off).
/^WAIT^ Waits for files locked via LOKSER to become unlocked
before processing file. This option is only valid
when the /BYHASH, /HASH or /VERSION option is used.
If a file is ^locked^ for access, ^DUPFIL^ will pause
until file is unlocked so that it can process the
HASH or VERSION number. The Default is /NOWAIT. In
the /NOWAIT mode, ^locked^ files will be ^bypassed^ and
indicated on the output terminal screen. If the /WAIT
\
^% DUPFIL Utility %^ Page 7 of 13
switch is used, ^DUPFIL^ will halt processing until
the file is ^unlocked^ or until the user presses a
H -
-^C-. The current locked file will be bypassed and processing
will then resume with the next file specification.
H ^
/^EXT^ This ON/OFF switch controls the sensitivity of
checking a file's extension. The default is ON
(/EXT). This is the normal state of file name
comparison. There my be instance where one might want
to check only the file name and not the file's
extension. With the switch OFF (/NOEXT), only a
file's name will be compared for a match and the
file's extension will be ignored.
/^CREATE^ Outputs the file's creation date. (Available only on
2.x extended devices.)
/^UPDATE^ Outputs the file's last update date. (Available only
on 2.x extended devices.)
\
^% DUPFIL Utility %^ Page 8 of 13
/^SHOW^ Displays file names as they are processed. Normally,
^DUPFIL^'s progress is represented by a statistical
progress display. Using the /SHOW switch will force
^DUPFIL^ to display each file name as it is processed.
Displaying each file name during processing will slow
down the ^DUPFIL^ procedure by having to output the
file name for a terminal display. The default is
/NOSHOW (off).
/^?^ This switch will list on the terminal all
available switches and their functions.
\
^% DUPFIL Utility %^ Page 9 of 13
Only enough of the switch specification to be unique needs to be
provided. E.G., the following are valid switch specs:
/^BYN^ (Same as /^BYNAME^)
/^BYH^ (Same as /^BYHASH^)
/^NOBYN^ (Same as /^NOBYNAME^)
/^TO^ (Same as /^TOTAL^)
/^NOT^ (Same as /^NOTOTAL^)
/^MI:4^ (Same as /^MIN:4^)
Switches may be specified anywhere after the program name. ^All^
switches are ^global^ in their action. For example, the following
two commands are functionally identical:
-> ^DUPFIL DSK0:*.TXT[],DSK1:*.TXT[]/HAS^
Output to DUPFIL.LST a list of all .TXT files with the same
name which are on DSK0: or DSK1:. The hash code of each file
is also included.
-> ^DUPFIL TEST.LST=ALL:*.WRT[]/V/HASH^
Output to TEST.LST a list of all AlphaWRITE files with the
same name which are anywhere on the system. Report the
version number of each file and the hash total of each file.
-> ^DUPFIL ALL:*.RUN[]/BYHASH^
Output to DUPFIL.LST a list of all .RUN files with the same
hash total, irrespective of the file names.
-> ^DUPFIL ALL:*.RUN[]/NOBYNAME^
Output to DUPFIL.LST a list of all .RUN files with the same
hash code, irrespective of the file names.
\
^% DUPFIL Utility %^ Page 11 of 13
Internally, the operation of ^DUPFIL^ is quite simple. It creates a
unique file containing a complete file specification, size of the
file, and type of file. If the /VERSION switch and/or the /HASH
or /BYHASH switch is selected then the file's version number
and/or hash code total are also output to the unique working
file. Once this task is completed, the unique file is sorted in
ascending or descending order depending upon the switch setting
on the command line. When the sorting is complete, ^DUPFIL^ will
scan the unique file for file name matches or hash code total
matches depending upon the switch setting and output the desired
information to the ^DUPFIL.LST^ file or the file name specified on
the command line as the output file specification.
In order to complete this task, ^DUPFIL^ requires disk space as a
work area during its operation. The more files ^DUPFIL^ needs to
examine, the more disk work space is required. The ^DUPFIL^ program
will do a check to see if there is enough ^available free^ disk
space to process the selection and will inform the user if there
is NOT enough available free disk space to complete the task.
^DUPFIL^ will always create the working file and sort the file on
\
^% DUPFIL Utility %^ Page 12 of 13
the device that the job invoking ^DUPFIL^ is currently logged on
to. The resulting output file can be routed to a different device
as provided in the output file specification on the ^DUPFIL^
command line.
It is advised that you keep the wild-spec as concise as
possible or insure you are logged to a disk with sufficient ^free^
space. ALL DISK WORK space IS returned when DUPFIL finishes.
The /^HASH^ switch or the /^BYHASH^ switch causes ^DUPFIL^ to do a
considerable amount of extra ^disk access^ and work to acquire hash
totals and will slow the operation down. To a much lesser extent,
/^VERSION^ also causes extra disk accesses.
^DUPFIL^ is compatible with all versions of AMOS 1.3, AMOS 1.4, and
AMOS 2.x releases. ^DUPFIL^ is also compatible with all versions of
^AMSORT.SYS^ on AMOS 1.3, AMOS 1.4, and AMOS 2.x releases. ^DUPFIL^
knows which version of ^AMSORT.SYS^ is on the system and will sort
correctly based on the current version you are using.
\
^% DUPFIL Utility %^ Page 13 of 13
To convert this to an ^AMOS^ style help file use ^DSH2AM.LIT^
available on the AMUS Network.
Any ^comments^, ^suggestions^, for ^DUPFIL^ should be made to:
^James A. Jarboe IV^
Educational Video Network, Inc.
1401 19th Street
Huntsville, Texas 77340