Name
copypds — copy a PDS(E) to another PDS(E) with member selection
Synopsis
copypds [OPTION]...//source.dataset.name
//target.dataset.name
copypds [OPTION]...//source.dataset.name(member_filter)
//target.dataset.name
copypds-h
copypds-v
Description
This z/OS Co:Z utility command makes a copy of a PDS or PDSE using the COPYGROUP operation of IBM's IEBCOPY utility. If the target PDS(E) does not exist, it will be created with allocation parameters like the source. If the target PDS(E) exists, members with the same name can be replaced or skipped, based on the options set.
source.dataset.name
is either an MVS PDS or PDSE data set, preceded by '//'.
target.dataset.name
may already exist. If it does, it must be a PDS or PDSE.
If it does not exist, it will be allocated like source.dataset.name.
If member_filter
is given, just the matching members from the source data set will be copied.
It must follow the IEBCOPY COPYGROUP member name filter pattern syntax
It cannot be specified if the -M switch is specified
In a shell you will need to quote "//source.dataset.name(member_filter)" since ( and ) are meta characters.
The -M
switch can be specified multiple times, or will read from stdin if the argument is "-" .
If the command fails during the IEBCOPY invocation, the IEBCOPY utility messages will be written to stderr
.
These messages will be emitted during a successful run if the logging level is set to Info
or more verbose.
Options
-h
display this help and exit.
-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.
-M
custom IEBCOPY member SELECT or EXCLUDE MEMBER statement. This switch can be specified multiple times, or if the argument is a hyphen "
-
", the control statements will be read from stdin.-r
both the source and target data set names are prefixed with MVS userid.
-R y|n|w
If
y
, replace like named members if the target data set exists. Ifn
, do not replace like named members and set RC=0 even if there was a conflict. Ifw
, do not replace and set RC=4 if there was a conflict.-Rw
is the default.-T
display the IEBCOPY command details without executing.
-v
display the current version and exit.
Examples
This example copies all of the members of a PDSE to a new PDSE
$ copypds //goetze.cozexits.loadlib //goetze.myexits.loadlib
This example copies the members of a PDSE with names starting with the characters
CZP
to an existing PDSE.$ copypds -Ry "//goetze.cozexits.loadlib(CZP*)" //goetze.myexits.loadlib
This example uses the
-T
option (test mode) that shows what the IEBCOPY invocation will look like without running the utility.The example also shows the use of
-M-
option to read the custom member selection control statements fromstdin
.$ copypds -TRy -M- //goetze.cozexits.loadlib //goetze.myexits.loadlib <<EOB > select member=(czchk*) > exclude member=(czchkip) > EOB //COPYPDS EXEC PGM=IEBCOPY,PARM='WORK=2M,RC4NOREP' //SYSUT1 DD DSN=GOETZE.COZEXITS.LOADLIB,DISP=SHR //SYSUT2 DD DSN=GOETZE.MYEXITS.LOADLIB,DISP=OLD //SYSPRINT DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=121) //SYSIN DD * COPYGROUP INDD=((SYSUT1,R)),OUTDD=SYSUT2 SELECT MEMBER=(CZCHK*) EXCLUDE MEMBER=(CZCHKIP) //
This example is the same as the above example replacing the
-T
option with the-LI
option (log at the INFO level) which runs the IEBCOPY utility and displays the messages.$ copypds -VRy -M- //goetze.cozexits.loadlib //goetze.myexits.loadlib <<EOB > select member=(czchk*) > exclude member=(czchkip) > EOB copypds[N]: Iebcopy: 1 IEBCOPY MESSAGES AND CONTROL STATEMENTS copypds[N]: Iebcopy: -IEB1135I IEBCOPY FMID HDZ2230 SERVICE LEVEL UA92265 DATED 20170618 DFSMS copypds[N]: Iebcopy: IEB1035I GOETZE *OMVSEX 12:20:54 WED 21 OCT 2020 PARM='WORK=2M' copypds[N]: Iebcopy: - COPYGROUP INDD=((SYS00010,R)),OUTDD=SYS00011 copypds[N]: Iebcopy: SELECT MEMBER=(CZCHK*) copypds[N]: Iebcopy: EXCLUDE MEMBER=(CZCHKIP) copypds[N]: Iebcopy: 0IEB1013I COPYING FROM PDSE INDD=SYS00010 VOL=VPWRKC DSN=GOETZE.COZEXITS.LOADLIB copypds[N]: Iebcopy: IEB1014I TO PDSE OUTDD=SYS00011 VOL=VPWRKB DSN=GOETZE.MYEXITS.LOADLIB copypds[N]: Iebcopy: IGW01264I TOTAL PRIMARY NAMES: 4, FILTER PATTERN MATCHES: 2 copypds[N]: Iebcopy: IGW01552I MEMBER CZCHKCMD HAS BEEN COPIED AND REPLACED copypds[N]: Iebcopy: IGW01552I MEMBER CZCHKPWD HAS BEEN COPIED AND REPLACED copypds[N]: Iebcopy: IGW01550I 2 OF 2 SPECIFIED MEMBERS WERE COPIED copypds[N]: Iebcopy: IEB147I END OF JOB - 0 WAS HIGHEST SEVERITY CODE