which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
201 lines
6.0 KiB
Plaintext
Executable File
201 lines
6.0 KiB
Plaintext
Executable File
|
|
Zip file/directories name convention under MVS
|
|
---------------------------------------------------
|
|
Draft 1.1
|
|
|
|
|
|
1. Translating native file names to Zip filenames.
|
|
|
|
1.1 Zipping a PDS
|
|
|
|
On MVS there are directories called PDS (Partition Data Set) which have
|
|
the following format : name1.name2.name3(mname)
|
|
for example: myuserid.unzip.c(unzip)
|
|
|
|
So as you see the path delimiter is '.'. Each dir name can be max 8
|
|
chars long beginning with a number.
|
|
|
|
Between '(' and ')' there is the so called member name - it is also 8
|
|
chars long. This is the actual file name.
|
|
|
|
|
|
1.1.1 Converting MVS PDS name to zip path/filename (status: not implemented)
|
|
|
|
The PDS name is converted to zippath as follows:
|
|
in the zip : name1/name2/mname.name3
|
|
becomes on MVS: name1.name2.name3(mname)
|
|
|
|
|
|
1.2 Unzipping as PDS (status: implemented)
|
|
|
|
When you unzip the file name myuserid/unzip/unzip.c the same process
|
|
is done backwards, so you get : myuserid.unzip.c(unzip)
|
|
|
|
Notice that the file extension is used as last dirname!
|
|
|
|
|
|
1.2 Unzipping to a different PDS (status: implemented)
|
|
|
|
You can also use -d option while unzipping for example:
|
|
unzip mytest myuserid/unzip/unzip.c -dnewdest.test
|
|
|
|
then the new name will become:
|
|
newdest.test.myuserid.unzip.c(unzip)
|
|
|
|
Second example:
|
|
|
|
unzip mytest myuserid/unzip/*.c -dnewdest.test
|
|
|
|
then you get a PDS:
|
|
newdest.test.myuserid.unzip.c(...)
|
|
|
|
with all *.c files in it.
|
|
|
|
|
|
1.3 Zipping a Sequential Dataset (status: not implemented)
|
|
|
|
Sequential dataset is a dataset with NO members.
|
|
Such a dataset is translated from native MVS to zip format by replacing
|
|
the '.' (points) with '/' (backslash).
|
|
|
|
Example:
|
|
on MVS: name1.name2.name3
|
|
becomes in the zip : name1/name2/name3
|
|
|
|
NOTE : The new filename in the zip has NO extension this way it can be
|
|
recognised as a Sequential dataset and not a PDS.
|
|
But this also means that all files in the zip archive that have
|
|
no extension will be unzipped as Sequential datasets!
|
|
|
|
|
|
1.4 Using a DDNAMES for input. (status: not implemented)
|
|
|
|
To use DDNAMES as input file names put a 'dd:' before the ddname:
|
|
example: zip myzip dd:name1 dd:name2 dd:sales
|
|
|
|
In the Zip archive the ddnames are saved as name.DDNAME so if you try
|
|
the example above you will get in your zip file (when listing it) :
|
|
|
|
..size .. date time .. crc .. NAME1.DDNAME
|
|
..size .. date time .. crc .. NAME2.DDNAME
|
|
..size .. date time .. crc .. SALES.DDNAME
|
|
|
|
|
|
1.4 Using a DDNAMES as zip name (status: implemented)
|
|
|
|
It is allowed to use a DDNAME as zipfile, just put dd: before it
|
|
example: unzip dd:myzip *.c
|
|
this will unzip all .c files from ddname myzip
|
|
|
|
example2: ZIP DD:MYZIP DD:MANE1 MYSOURCE.C MYDOC.TEXT(ZIPPING)
|
|
this will zip ddname name1 file mysource.c and PDS mydoc.text(zipping)
|
|
into as a zip file in the ddname myzip
|
|
|
|
|
|
2. Converting longer path names (unix like) (status: not implemented)
|
|
to native MVS names.
|
|
|
|
When in the zip archive there are dirnames longer that 8 chars they are
|
|
chopped at the 8 position. For example
|
|
MyLongZippath/WithLongFileName.text
|
|
is translated to:
|
|
MYLONGZI.TEXT(WITHLONG)
|
|
|
|
Notice that all chars are converted to uppercase.
|
|
|
|
|
|
2.1 Using special characters (status: implemented)
|
|
|
|
Also all '_' (underscore), '+' (plus), '-' (minus), '(' and ')'
|
|
from the file name/path in the zip archive are skipped because they
|
|
are not valid in the MVS filenames.
|
|
|
|
|
|
2.2 Nummeric file names (status: not implemented)
|
|
|
|
When a dir/file name begins with number the letter 'N' is putted before
|
|
because on MVS no name can begin with number. For example:
|
|
Contents.512
|
|
becomes:
|
|
CONTENTS.N512
|
|
|
|
|
|
|
|
|
|
Zip file/directories name convention under VM/CMS
|
|
---------------------------------------------------
|
|
|
|
1. Translating native file names to Zip filenames.
|
|
|
|
On VM/CMS (not ESA ) there are NO directories so you got only disks
|
|
and files.
|
|
|
|
The file names are delimited with spaces. But for use with unzip/zip
|
|
you have to use '.' points as delimiters.
|
|
|
|
For example on your A disk you have file called PROFILE EXEC
|
|
if you want to zip it type : zip myzip profile.exec
|
|
|
|
If the same file is on your F disk you have to type:
|
|
zip myzip profile.exec.f
|
|
|
|
So as you can see the general format is fname.ftype.fmode
|
|
|
|
In the zipfile the disk from which the file comes is not saved!
|
|
So only the fname.ftype is saved.
|
|
|
|
If you unzip and you want to give a different destination disk just use
|
|
the -d option like:
|
|
|
|
unzip mytest *.c -df
|
|
|
|
This will unzip all *.c files to your F disk.
|
|
|
|
|
|
2. Converting longer path names (unix like) to native VM/CMS names.
|
|
|
|
When in the zip archive there are dirnames longer that 8 chars they are
|
|
chopped at the 8 position. Also the path is removed. For example
|
|
Zippath/WithLongFileName.text
|
|
is translated to:
|
|
WITHLONG.TEXT
|
|
|
|
Notice that all chars are converted to uppercase.
|
|
|
|
Also all '+' (plus), '-' (minus), '(' and ')'
|
|
from the file name/path in the zip archive are skipped because they
|
|
are not valid in the VM/CMS filenames.
|
|
|
|
If there is no extension for the file name in the zip archive, unzip
|
|
will add .NONAME for example:
|
|
mypath/dir1/testfile
|
|
becomes:
|
|
TESTFILE.NONAME
|
|
|
|
3. Future?
|
|
|
|
There is also discussion for a new option on ZIP that you can give
|
|
a virtual directory to be added before each file name that is zipped.
|
|
|
|
For example you want to zip a few .c file and put them in the zip
|
|
structure under the directory 'mydir/test', but you can't create dirs on
|
|
VM/CMS so you have to the something like:
|
|
|
|
ZIP myzip file1.c file2.c -dmydir/test
|
|
|
|
and you get in the zip archive files:
|
|
|
|
mydir/test/file1.c
|
|
mydir/test/file2.c
|
|
|
|
-------------------------------------------------------------------------
|
|
|
|
|
|
NOTE: Not all of those functions are implemented in the first beta
|
|
release of VM/MVS UNZIP/ZIP.
|
|
|
|
Every ideas/corrections/bugs will be appreciated.
|
|
Mail to maillist: Info-ZIP-WKUVX1.WKU.EDU
|
|
|
|
George Petrov
|