home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d445
/
tar
/
doc
/
readme.amiga
< prev
next >
Wrap
Text File
|
1991-01-24
|
4KB
|
78 lines
Amiga Tar
This is tar for the Amiga. I used John Gilmore's (gnu@toad.COM) public
domain tar program as a base for this tar. This program, and the files it
produces are supposed to be fully compatible with UNIX tar.
Amiga Specific Features
There are a couple of Amiga specific features which I've added. In an unused
part of the header I store a magic number, the original Amiga file bits, the
file's date stamp (including ticks), and the file comment. When this program
extracts it looks for the magic number. If it is present, it uses the stored
file bits to set the mode rather than the mode stored in the regular tar
header. The file's comment is also set, and the timestamp set from the
original timestamp. There is also some filename translation which goes on,
each leading / translates to ../, null string translates to ./, so the files
are compatible with UNIX. The reverse of these translations is done when
extracting. Since some shells have difficulty giving tar a null string as an
argument, "." can be used to specify the current directory, as in
"tar cvf ram:mybackup ." to add every file in and below the current directory
to the tar archive. You may need to quote the single period in some shells,
like Sksh, as it will expand to the absolute pathname otherwise.
Archiving
If you specify the modifier "a" on the command line, the archived bit of every
file will be set as it is added to the tar archive. You can use tar as a file
backup utility this way. Regardless of command line options, the archived bit
is always cleared upon extraction.
If you specify the modifier "A" on the command line, tar will not archive
any regular file which has its archived bit set. Directories are always
written to the archive.
Differences
If you say something like "tar cvf ram:foo .", the output might not be what
you would expect. To get the normal amount of verbosity, you need to specify
"v" twice, as in "tar cvvf ram:foo". I think the reason this was done is so
that a single v will give you a list of filenames you can easily edit,
something a normal tar won't do. You should also realize that you can't
set protection, comment, or datestamp on a root directory. Tar can fail when
setting protection, comment, and datestamp on a directory. This will happen
if someone is holding a lock on the directory. Tar tries to be clever
and cd up one level when setting stuff on the current directory, but this
will fail if anyone else has a lock on the directory. Tar complains loudly
when this happens. Tar works with CrossDOS, but setting the comment fails
of course.
Environment variables
You will want to set a couple environment variables for tar. You should set
TZ, just like in UNIX. For me the command line is "setenv TZ PST8PDT".
If you don't set TZ, tar uses "CST6CDT" as the default. The second
environment variable is "TARFILE", which is the name of the default
file to create. You should do something like "setenv TARFILE ram:tarfile".
If you don't set TARFILE, it defaults to "ram:tarfile".
Why tar?
There are a lot of reasons for using tar. It preserves the directory
structure, it's fast, it restores all the information that goes along
with a file, and it's used on UNIX boxes.
Bugs
While I've tried to test this as much I can, I can't guarantee that there
aren't any bugs. So use this at your own risk.
For reasons I don't understand, tar cannot set the timestamp on files in
the current directory when the files reside on the ASDG recoverable RAM
DISK. It works fine with everything else I've tried. If you look at the
code in utime.c, the ParentDir() call returns zero. The files are still
extracted ok, but the timestamps are not changed.
Jonathan Hue
hue@netcom.UUCP