Dovetailed Technologies

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-separator

flexible | 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.

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.

0xbb[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-options

A 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 0xbb

pad character used to pad fixed-length records. The default is the target codepage space character.

-q technique-str

Codepage 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-codepage

The codepage name or numeric CCSID id of the input data. If not specified and invoked from a remote client with a line-separator other than 'none', 'rdw' or 'mfrdw', then the default client codepage is used, otherwise the default z/OS codepage is used.

-t target-codepage

The 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.

-T STANDARD | translate_table_dsname

Specifies the translate table to use for text mode transfers. This option overrides the -s -t -q options if also given. If STANDARD, 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 options

A 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

  1. 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).  
    
  2. Here the getpds -M mtime=member 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). 
    
  3. 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 valid member[.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.
    
                                 
    

See Also

getpds(1)

copypds(1)

fromdsn(1)

todsn(1)

Copyright© 2009-2020 Dovetailed Technologies, LLC. All rights reserved.
Co:Z® is a registered trademark of Dovetailed Technologies, LLC.