Name
putpds — Copies UNIX file(s) to PDS(E) member(s)
Synopsis
putpds [OPTION...]file
...//dataset.name
putpds [OPTION...]file
//dataset.name(member)
putpds-h
putpds-v
Description
The putpds command copies UNIX file(s) to PDS(E) member(s).
dataset.name
is either an MVS PDS or PDS/E dataset, preceded by '//'.
The name is assumed to be a fully qualified DSN, unless the -r option is used.
ISPF statistics can be created for members, depending on the -M member processing options given.
Supported record formats include: RECFM=F(B), V(B), and U.
RECFM=VBS is not supported, and statistics processing is not available with RECFM=U. Load modules, program objects, aliases, or other members with user TTRNs may not be copied.
One or more file
names may be given; shell file globbing may be used to
specify file names as wild cards. If //dataset.name(member)
is specified, the file
name
is used as given and may be "-" for stdin. Otherwise, the given file names must
be either a valid member name or in the form: member.suffix.
In a shell you will need to quote "//dataset.name(member)"
since ( and ) are meta characters.
Options
-b
"binary", disables translation and implies: -l none -w flow -p 0x00 if -b is specified with -l (except -l none), then -w wrap is the default.
-h
display help and exit.
-l
line-separatorflexible
|cr
|lf
|crlf
|nl
|crnl
source lines are separated by combination of linefeed and/or carriage return characters. The default is 'flexible' which allows for any of the other patterns above. These characters are taken from the source codepage.
rdw
source lines are preceeded with a four byte IBM-style RDW, consisting of a two byte network order (big endian) length followed by two bytes of zeros.
l4
lines are preceeded by the four byte network order (big endian) length of the record that follows. Note: Unlike the
rdw
option, this length value does not include the size of the length field.mfrdw
Source data is preceeded by a 128 byte MicroFocus standard header. Source lines are preceeded with a network order (big endian) length. If the maximum record length is < 4095 bytes, the length field is 2 bytes. If the maximum record length is >= 4095 bytes, the length field is 4 bytes. Each record must be padded with zeros to the nearest 4 byte boundary. This only supports
Variable Format Record Sequential File
s containing normal data records0xbb[bb..]
source lines are followed with a hex character sequence. The sequence must be between 1 and 8 bytes long.
none
source lines do not have separators; source lines are determined by the maximum output record length.
-L
logging-optionsA comma-separated list of options to control logging and tracing.
M
|A
|C
|E
|W
|N
|I
|D
|T
|F
Logging threshhold: eMergency, Alert, Critical, Error, Warning, Notice (default), Info, Debug, Trace, Fine.
t
Prefix log messages with a system timestamp
e
Include consumed cpu time in log messages
f=filename
Messages are logged to
filename
on the server instead of stderr. If not fully qualified, the file is written to the user's home directory on the server.component=M|A|C|E|W|N|I|D|T|F
Set the logging threshold for a specific component. Specify only at the request of product support personnel.
-p
0xbbpad character used to pad fixed-length records. The default is the target codepage space character.
-q
technique-strCodepage conversion technique string. Used to override the default Unicode Services value of
LMREC
. For more information, see IBM's Unicode Services User's Guide and Reference (SA22-7649).-r
dataset-name
will be prefixed with the current z/OS userid.-s
source-codepageThe codepage name or numeric CCSID id of the input data. If not specified the default z/OS codepage is used.
-t
target-codepageThe codepage name or numeric CCSID id of output dataset. If not specified, then the default z/OS process codepage is used. Translation is disabled if source-codepage equals target-code- page.
-S
D | MFor existing PDS data sets, allocate with DISP=SHR and serialize using ISPF compatible data set (D) or data set and member ENQs (M). When using "D", other users' ISPF member edit sessions will be disregarded but overhead for copying many members can be reduced especially in a sysplex.
-T
STANDARD | translate_table_dsnameSpecifies the translate table to use for text mode transfers. This option overrides the
-s -t -q
options if also given. IfSTANDARD
, the translate table TCPIP.STANDARD.TCPXLBIN is used. If a dataset name is supplied, it is expected to be in the format produced by the TSO CONVXLAT command. Only single byte translations are supported. Specifically, the dataset DCB must be LRECL=256,RECFM=F and contain two translation table records. The first record is an ASCII-to-EBCDIC mapping; the second record is an EBCDIC-to-ASCII mapping. Additional comment records (starting with * in the first column) are allowed.-M keyword=value[,keyword=value...]
member processing optionsA comma-separated list of keyword and value pairs for specifying member processing options.
r[eplace]=y[es]|n[o]
if yes (default) then existing members may be replaced.
g[enstats]=y|n
if yes, create or update member statistics for each member copied. Default is no - copied members will not have stats
st[atsfile]=filename
used with the zigi product to provide stats for members. May not be specified with genstats=y
u[pdate]=a[ll]
copy all named files (default)
u[pdate]=n[ewer]
with genstats, only copy files with mtime newer than member stats, also copying if either does not have stats
with statsfile, only copy only files with newer (or missing) statsfile stats
u[pdate]=o[nly]
with statsfile), only copy only files with statsfile entries
mt[ime]=c[urrent]
with genstats, set member mtime to current time (default)
with statsfile that is missing member stats, set member mtime to current time (default)
mt[ime]=f[ile]
with genstats, set member stats mtime to the file's mtime, or current time if mtime is not available for the file
with statsfile that is missing member stats, set member mtime to the file's mtime, or current time if not present for the file
-v
display the current version and exit.
-w
wrap (default) | error | flow | trunc. This options determines what to do if the input line is longer than the maximum data set record length.
Examples
This example first copies members of a PDS to UNIX files using getpds. The putpds is then used to copy these files to a new PDS.
$ getpds //kirk.admin.jcl . getpds(KIRK.ADMIN.JCL)[N]: 24 members/945 records/75600 bytes read; 38796 bytes written in 0.011 seconds (3444.247 KBytes/sec). $ putpds -x 'like(kirk.admin.jcl)' * //kirk.admin.copy.jcl putpds(KIRK.ADMIN.COPY.JCL)[N]: 38796 bytes read; 24 members/945 records/75600 bytes written in 0.042 seconds (37.598 KBytes/sec).
Here the putpds is used to create statistics for each member copied using the current time and line counts. The -LI option is used to print information messages about each member copied.
$ putpds -M gen=y -LI * //kirk.admin.copy.jcl putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorc -> ACSSTORC putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorg -> ACSSTORG ... putpds(KIRK.ADMIN.COPY.JCL)[I]: copied sysinfo -> SYSINFO putpds(KIRK.ADMIN.COPY.JCL)[I]: copied z13rest -> Z13REST putpds(KIRK.ADMIN.COPY.JCL)[N]: 38796 bytes read; 24 members/945 records/75600 bytes written in 0.044 seconds (35.889 KBytes/sec).
In this example use the getpds -M statsfile= option to write a file containing the statistics for the original PDS. The putpds command is then used to copy members and these stats to the second PDS. Stats will be generated for any members that had no statistics, using the current time. Notice that the shell expanded "*" to include the
ispf-stats
file, but this was skipped because it is not a validmember[.suffix]
name. Finally, we use getpds to print the stats (no members are copied since a target directory is not specified).$ getpds -M st=ispf-stats //kirk.admin.jcl . getpds(KIRK.ADMIN.JCL)[N]: 24 members/945 records/75600 bytes read; 38796 bytes written in 0.010 seconds (3788.672 KBytes/sec). $ putpds -LI -M st=ispf-stats * //kirk.admin.copy.jcl putpds(KIRK.ADMIN.COPY.JCL)[I]: skipping file with unrecognized name format: "ispf-stats" putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorc -> ACSSTORC putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorg -> ACSSTORG ... putpds(KIRK.ADMIN.COPY.JCL)[I]: copied sysinfo -> SYSINFO putpds(KIRK.ADMIN.COPY.JCL)[I]: copied z13rest -> Z13REST putpds(KIRK.ADMIN.COPY.JCL)[N]: 38796 bytes read; 24 members/945 records/75600 bytes written in 0.043 seconds (36.723 KBytes/sec). $ getpds -M st=- //kirk.admin.copy.jcl ACSSTORC 16/12/02 17/10/02 1 2 14:22:50 104 57 0 IBMUSER ACSSTORG 16/12/01 17/10/02 1 1 14:23:53 45 38 0 IBMUSER ... SYSINFO 20/10/26 20/10/26 1 0 12:44:16 155 155 0 KIRK Z13REST 17/08/18 17/08/18 1 1 15:39:30 42 40 0 KIRK getpds(KIRK.ADMIN.COPY.JCL)[N]: 0 members/0 records/0 bytes read; 0 bytes written in 0 milliseconds.