mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 15:27:28 +00:00
161 lines
6.7 KiB
Plaintext
Executable File
161 lines
6.7 KiB
Plaintext
Executable File
The DIR device
|
||
|
||
A new device has been defined (it will work only on ITS with version
|
||
number greater than 886). This device allows users and programs to
|
||
see sorted directories or subsets of directories. The DIR device
|
||
supports both image and ascii mode directories which means that it can
|
||
be PRINTed or used in programs like DIRED and FIND.
|
||
|
||
The DIR device requires a file name much like a disk path name.
|
||
It takes a device name (DIR), a user's directory name, and two file
|
||
names. The directory name identifies the disk directory to be sorted
|
||
or subsetted, while the two file names indicate what to do with the
|
||
directory. The device name may also be DIRxxx, which will cause
|
||
device xxx: to be used instead of DSK. For example, DIRML: will go
|
||
over the net to the ML machine, and DIRAR3: will look at the
|
||
specified user's AR3 archive.
|
||
|
||
There are currently two types of operations - sorting and subsetting.
|
||
|
||
If you wish to sort, the first file name you supply will identify the
|
||
sort key and the second file name will determine whether an ascending
|
||
or descending sort is used (DOWN => descending, UP implies ascending).
|
||
The following table gives the currently recognized first file names
|
||
for sorting:
|
||
|
||
file name => sort key
|
||
|
||
NAME1 sort on first file name
|
||
NAME2 sort on second file name
|
||
LENGTH or SIZE sort on file length
|
||
(links have len = 0)
|
||
CDATE sort on creation date
|
||
RDATE sort on reference date
|
||
|
||
Note that numeric names are sorted specially: The numeric names come
|
||
before any non-numeric names, and the numeric names are ordered by
|
||
number, not by name (so for example, 10 comes after 9, instead of
|
||
before it.)
|
||
|
||
For subsetting, the directory subset will be sorted like NAME1 UP.
|
||
|
||
If the first file name you supply is NOT or ONLY, it indicates whether
|
||
only those things with the named attribute (if ONLY) or only those
|
||
things without the named attribute (if NOT) are retained. The second
|
||
file name indicates the attribute upon which the decision should be
|
||
made:
|
||
|
||
file name ==> attribute
|
||
|
||
LINKS or LINK whether file is a link
|
||
DUMPED whether file is backed up
|
||
PACKnm whether file is on disk pack nm
|
||
|
||
If the first file name is one of: CDATE> CDATE= CDATE< RDATE> RDATE= RDATE<
|
||
then the second file name must be a date in YYMMDD format.
|
||
|
||
The directory subset returned consists of only those files which pass
|
||
the test, such as:
|
||
all files created since new years: CDATE> 750000
|
||
all file created on last July 4: CDATE= 740704
|
||
and similarly for reference date. Note that you can use 00's even
|
||
though those are normally not legal dates. Additionally, these work
|
||
on links just like CDATE UP and CDATE DOWN, even though you usually
|
||
don't see creation dates for them.
|
||
|
||
If the first file name is FIRST, FIRST#, or SECOND, the second file
|
||
name specifies a pattern in DIRED-style "* format". Examples:
|
||
all files named NBIN: SECOND NBIN
|
||
all files with 1st name starting with BAR: FIRST BAR***
|
||
|
||
FIRST# is like FIRST, except that it will only consider files with a
|
||
numeric fn2. Thus FIRST# ****** will give you all the files with
|
||
purely numeric second names (and any first name). Also, FIRST# cause
|
||
the numeric fn2's to be right-justified in the listing.
|
||
|
||
If the file names given are not one of the valid forms listed above,
|
||
you will get a "mode not available" error. If the file names are
|
||
valid but the directory can not be opened, you will get whatever that
|
||
open error is. For example: DIR:BLECH;NAME1 UP will cause a
|
||
"non-existent user name" error.
|
||
|
||
Examples:
|
||
|
||
DIR:.INFO.;CDATE DOWN
|
||
will give a directory of all the .INFO. files with the
|
||
most recently created ones listed first.
|
||
|
||
|
||
DIR:SYS;ONLY LINKS
|
||
will give a directory with those files in SYS
|
||
that are links
|
||
|
||
|
||
The DIR device handler can also be used to intercept DSK (or AI, DM,
|
||
ARC, etc.) device requests by means of translation entries. Saying
|
||
the following to DDT (eg. in your .DDT. (INIT) file)
|
||
*: *; .FILE. *, JOB:DEVICE;JOBDEV DIR
|
||
*: *; ****** *, JOB:DEVICE;JOBDEV DIR
|
||
*: *; * ******, JOB:DEVICE;JOBDEV DIR
|
||
*: *; * ######, JOB:DEVICE;JOBDEV DIR
|
||
will allow you to use the following features of the DIR handler:
|
||
|
||
.FILE. (DIR) acts like DIR: NAME1 UP,
|
||
which will give you a DIR-style directory listing
|
||
(with tenths-of-blocks and reference dates) instead of the normal
|
||
system listing. (Note that .FILE. (DIR) is what TECO reads to do the
|
||
EY command, so EY will give you the new format.
|
||
|
||
.FILE. +<foo> acts like DIR: ONLY <foo>
|
||
.FILE. -<foo> acts like DIR: NOT <foo>
|
||
.FILE. /<foo> acts like DIR: <foo> UP
|
||
.FILE. \<foo> acts like DIR: <foo> DOWN
|
||
****** <name> acts like DIR: SECOND <name>
|
||
<name> ****** acts like DIR: FIRST <name>
|
||
<name> ###### acts like DIR: FIRST# <name>
|
||
|
||
Note the fact that all .FILE. (DIR) requests must go through the DIR
|
||
handler will significantly slow down the FIND program. Thus the
|
||
translation entry should be removed (via .FILE.) before running FIND.
|
||
|
||
|
||
Using the DIR device:
|
||
|
||
There are basically four ways to use the DIR right now:
|
||
|
||
(1) Print it using DDT, etc.
|
||
For example, try typing :PRINT DIR:SYS;ONLY LINKS to DDT.
|
||
This will get you a ":LISTF" of the links in the SYS directory.
|
||
|
||
(2) Use it in TECO macros for getting at various directory subsets.
|
||
For example, DIR: FIRST <whatever> or <whatever> ****** (with the
|
||
appropriate DDT translation entry) can be used in the M..G
|
||
directory display macro to only display the appropriate files.
|
||
Also, DIR: FIRST# <whatever> (or DSK: <whatever> ######) can be
|
||
used in the "erase all but the last few numerically-named copies
|
||
of <whatever>" macro. Doing these kinds of subsetting via the DIR
|
||
device is usually faster than reading in the whole directory
|
||
(which the system must convert to acsii) and then subsetting it
|
||
using TECO commands. The file AI:GROSS;^TECO^ > contains some
|
||
examples (see the macros .F, F, Z, and D)
|
||
|
||
(3) Use it in DIRED. NDIRED now knows about the DIR device.
|
||
For example, try typing ACT DIR:SYS;ONLY LINKS to NDIRED.
|
||
This will activate a directory consisting of only the links in the
|
||
SYS directory. NDIRED will do all copies, deletes, etc. via the
|
||
DSK for efficiency.
|
||
|
||
(4) Use it with DFIND. This is a special version of FIND for use with the
|
||
DIR device. You may NOT do file name pattern matching since the file
|
||
names you specify will be interpreted as names for the DIR device.
|
||
You can, however, use it for other purposes. For example try typing
|
||
the following to DDT: :DFIND ONLY PACK20
|
||
This will cause every directory on the system to be searched for
|
||
files that are on pack 20.
|
||
|
||
Report problems to BUG-ITS@MIT-MC.
|
||
Reasonable suggestions for modifications will be considered.
|
||
(Formerly maintained by GROSS@AI or PDL@DM.)
|
||
|
||
|