(copy POSIX/BS2000 files)
bs2cp kopiert Dateien vom POSIX-Dateisystem ins BS2000 und umgekehrt. Das Kommando hat vier Formate:
Das Kommando erstellt physische Kopien. Das heißt, die Dateien sind nach dem Kopiervorgang sowohl im POSIX-Dateisystem als auch im BS2000 physisch vorhanden.
Syntax
Format 1: Eine einzelne POSIX-Datei ins BS2000 kopieren und umgekehrt
bs2cp[ -k| -t tabelle][ -f][ -l][ -h] bs2:datei dateikopie |
bs2cp[ -k| -t tabelle][ -f][ -l][ -h] datei bs2:dateikopie |
Beim Kopieren wird der Inhalt der Datei konvertiert:
Wenn die Originaldatei oder die Dateikopie ein PLAM-Bibliothekselement vom Typ L (LLM) ist, wird diese Option ignoriert und keine Konvertierung durchgeführt. Im Gegensatz zur Steuerung mit der Umgebungsvariablen IO_CONVERSION wird mit -k unabhängig vom Typ des POSIX-Dateisystems konvertiert, d.h. auch dann, wenn das POSIX-Dateisystem ein EBCDIC-Dateisystem ist (also kein ASCII-Dateisystem oder ein mit NFS eingehängtes Dateisystem). -k ist nur bei Textdateien sinnvoll. Eine inhaltliche Plausibilitätskontrolle, ob die zu konvertierende Eingabedatei sinnvoll zu konvertieren ist, findet durch bs2cp nicht statt.
Beim Kopieren der Datei wird ihr Inhalt konvertiert, wobei die Datei tabelle als Konvertierungstabelle verwendet wird. Die Optionen -k und -t schließen sich gegenseitig aus. Analog zur Option -k wird diese Option ignoriert und keine Konvertierung durchgeführt, wenn die Originaldatei oder die Dateikopie ein PLAM-Bibliothekselement vom Typ L ( LLM ) ist. Eigenschaften der Datei tabelle:
Sofern die Datei tabelle nicht mit dem absoluten Pfadnamen angegeben wird, sucht sie das Kommando standardmäßig unter $BS2CPTABS. Ist diese Variable nicht gesetzt oder leer, so wird die Datei tabelle im Verzeichnis /usr/lib/bs2cp gesucht. Bei der Konvertierung wird zunächst aus der Datei tabelle eine 256 Byte große Umsetzungstafel erstellt, indem jedes der 256 Zeichenpaare zu einem Hexadezimalzeichen verdichtet wird. Danach wird jedes Zeichen aus der zu kopierenden Datei durch ein Zeichen der Umsetzungstafel ersetzt, das über den Binärwert des Eingabezeichens adressiert wird. So wird z. B. das Eingabezeichen M durch das 212. Byte der Umsetzungstafel ersetzt, weil M den EBCDIC-Wert X’D4’ und damit den Dezimalwert 212 hat. Ein Beispiel für den Aufbau einer Codier-Tabelle finden Sie unter „Beispiel-Tabelle zur Option -t“.
Beim Kopieren vom POSIX ins BS2000 erfolgt standardmäßig eine Abfrage nach stderr, ob bereits existierende BS2000-Dateien/Elemente überschrieben werden sollen oder nicht. Mit -f wird diese Dialogabfrage unterdrückt und bereits existierende Dateien werdenüberschrieben. Beim Kopieren von BS2000 nach POSIX wird diese Option (sofern angegeben) ignoriert; bereits existierende POSIX-Dateien werden generell überschrieben. Falls die Umgebungsvariable OV existiert, entfällt die Dialogabfrage unabhängig von der Angabe -f. Ist OV = "Y", werden bereits existierende BS2000-Dateien/Elemente überschrieben, andernfalls werden sie nicht überschrieben und es wird stattdessen eine Meldung ausgegeben.
Jede erfolgreich kopierte Datei wird wie folgt protokolliert:
Ausgabe der Kommandosyntax mit Erläuterung der Optionen.
Die bei dieser Option angegebene datei oder dateikopie ist eine BS2000-Datei. Handelt es sich dabei um eine DVS-Datei, wird sie über ihren Namen angesprochen. Sonderzeichen im Dateinamen (z. B. $ in der BS2000-User-ID) sind durch einen vorangestellten Backslash zu entwerten oder die Zeichenketten bs2: datei bzw. bs2: dateikopie sind in Hochkommata einzuschließen. Handelt es sich dabei um ein Bibliothekselement, wird es in der folgenden Form angesprochen (siehe auch Beispiel 3): 'lib(elem[,[type][,vers]])' Dabei bedeuten
Genau eine der Dateien (datei oder dateikopie) muss eine BS2000-Datei oder ein Bibliothekselement sein. POSIX-Dateiverzeichnisse können nicht ins BS2000 kopiert werden. Wildcard-Syntax und Konstruktionsangaben werden nicht unterstützt.
Name der Datei, die kopiert werden soll.
Name der Kopie. Ist dateikopie eine bereits existierende BS2000-Datei oder ein Bibliothekselement, so wird abgefragt, ob überschrieben werden soll. Die Option -f und die Umgebungsvariable OV=Y schalten diese Abfrage aus. Ist dateikopie eine BS2000-DVS-Datei, so gilt:
Ist dateikopie ein Element einer BS2000-PLAM-Bibliothek, so gilt:
|
Format 2: POSIX-Dateien als DVS-Dateien ins BS2000 kopieren
|
Erweitertes (extended) Format des Kommandos bs2cp.
siehe Format 1
Analog zu Format 1 erfolgt beim Kopieren standardmäßig eine Abfrage nach stderr, ob bereits existierende BS2000-Dateien überschrieben werden sollen. Die Abfrage enthält jedoch mehrere Antwortmöglichkeiten: Bei Angabe von q wird das Kommando bs2cp mit einem Exit-Status ungleich Null abgebrochen. Mit -f wird diese Dialogabfrage unterdrückt und bereits existierende Dateien werden generell überschrieben. Falls die Umgebungsvariable OV existiert, entfällt die Dialogabfrage unabhängig von der Angabe -f. Ist OV = "Y", werden bereits existierende BS2000-Dateien/Elemente überschrieben, andernfalls werden sie nicht überschrieben und es wird stattdessen eine Meldung ausgegeben.
Jede erfolgreich kopierte Datei wird wie folgt protokolliert:
Ausgabe der Kommandosyntax mit Erläuterung der Optionen.
Die Zeichenkette präfix wird den Namen der Kopien vorangestellt.
Die Zeichenkette suffix wird an die Namen der Kopien angehängt.
ist eine Liste aus einer oder mehreren POSIX-Dateien, wobei jeweils Shell-Sonderzeichen für Dateinamen-Erzeugung genutzt werden können. datei darf kein Dateiverzeichnis sein.
Die Kopien werden im BS2000 als DVS-Dateien abgelegt. Die Kopien erhalten jeweils denselben einfachen Dateinamen wie die Originale in Großbuchstaben, können jedoch über präfix und suffix erweitert werden. Eventuell vorhandene Unterstriche werden in Dollarzeichen umgewandelt. Bei bereits bestehenden Dateien wird abgefragt, ob überschrieben werden soll. Zusätzlich kann bestimmt werden, ob alle folgenden Dateien ohne Rückfrage überschrieben werden sollen. Es besteht auch die Möglichkeit zum Abbruch. Die Dateien werden standardmäßig in die BS2000-Benutzerkennung des POSIX-Benutzers auf dem Home-Pubset kopiert. Das mit -p angegebene Präfix kann z.B. dazu genutzt werden, eine andere Cat-ID und/oder User-ID anzugeben. Siehe Beispiel 4. |
Format 3: POSIX-Dateien in eine BS2000-PLAM-Bibliothek kopieren
|
Erweitertes (extended) Format des Kommandos bs2cp.
siehe Format 1
Beim Kopieren erfolgt standardmäßig eine Abfrage nach stderr, ob bereits existierende BS2000-Elemente überschrieben werden sollen oder nicht. Mit -f wird diese Dialogabfrage unterdrückt und bereits existierende Elemente werden überschrieben. Falls die Umgebungsvariable OV existiert, entfällt die Dialogabfrage unabhängig von der Angabe -f. Ist OV gleich "Y", werden bereits existierende BS2000-Dateien/Elemente überschrieben, andernfalls werden sie nicht überschrieben und es wird stattdessen eine Meldung ausgegeben.
Jede erfolgreich kopierte Datei wird wie folgt protokolliert:
Ausgabe der Kommandosyntax mit Erläuterung der Optionen.
Die Zeichenkette präfix wird den Namen der Kopien vorangestellt.
Die Zeichenkette suffix wird an die Namen der Kopien angehängt.
ist eine Liste aus einer oder mehreren POSIX-Dateien, wobei jeweils Shell-Sonderzeichen für Dateinamen-Erzeugung genutzt werden können. datei darf kein Dateiverzeichnis sein.
Die Kopien werden als Elemente der BS2000-PLAM-Bibliothek lib abgelegt. Zu type und vers siehe Format 1. Die Namen der Elemente werden jeweils aus den einfachen Dateinamen der Originale in Großbuchstaben gebildet, können jedoch über präfix und suffix erweitert werden. Siehe Beispiel 5. |
Format 4: BS2000-Dateien mit Wildcard-Syntax in ein POSIX-Dateiverzeichnis kopieren
|
Erweitertes (extended) Format des Kommandos bs2cp.
siehe Format 1
Beim Kopieren erfolgt standardmäßig eine Abfrage nach stderr, ob bereits existierende BS2000-Elemente überschrieben werden sollen oder nicht. Mit -f wird diese Dialogabfrage unterdrückt und bereits existierende Elemente werden überschrieben. Falls die Umgebungsvariable OV existiert, entfällt die Dialogabfrage unabhängig von der Angabe -f. Ist OV gleich "Y", werden bereits existierende BS2000-Dateien/Elemente überschrieben, andernfalls werden sie nicht überschrieben und es wird stattdessen eine Meldung ausgegeben.
Jede erfolgreich kopierte Datei wird wie folgt protokolliert:
Ausgabe der Kommandosyntax mit Erläuterung der Optionen.
Die Zeichenkette präfix wird den Namen der Kopien vorangestellt.
Die Zeichenkette suffix wird an die Namen der Kopien angehängt.
datei Ist ein vollqualifizierter DVS-Dateiname oder ein teilqualifizierter DVS-Dateiname mit Wildcardsyntax (Sonderzeichen „*“ des BS2000-Kommandos SHOW-FILE-ATT bzw. FS). Es ist nur ein Operand bs2: datei zulässig. Achtung: Wenn der Name nur aus Leerzeichen besteht oder ganz weggelasssen wird, so entspricht dies der Wildcard-Angabe "*"
elem ist der vollqualifizierte Name eines PLAM-Elements oder der teilqualifizierte Name mehrerer PLAM-Elemente mit LMS-Wildcardsyntax. Für Wildcard werden folgende Sonderzeichen unterstützt: * < : >. Andere Sonderzeichen für LMS-Wildcards werden nicht garantiert. Sonderfall: Wird für elem nichts angegeben, so werden alle Elemente von entsprechendemTyp und Version genommen (würde der Wildcard-Angabe „*“ entsprechen). Minimalangabe: dateiverzeichnis Die BS2000-Dateien/Elemente werden in das angegebene POSIX-Dateiverzeichnis kopiert. Die in der Shell üblichen Notationen für Dateiverzeichnisse sind zulässig, z.B:
Siehe Beispiel 6 und Beispiel 7 |
Hinweise
EXIT-Status bei den erweiterten Formaten 2 bis 4Wenn pro bs2cp-Aufruf mehrere Dateien kopiert werden, erhält man den Exit-Status 0 nur dann, wenn alle Kopieraktionen erfolgreich waren. Beim Auftreten eines Fehlers wird das Kopieren mit den verbleibenden Dateien fortgesetzt. Wenn keine der Dateien kopiert werden konnte, wird der Exit-Status 1 geliefert. Wenn nur ein Teil der Dateien kopiert werden konnte, wird der Exit-Status 2 geliefert. Kopieren von BibliothekselementenBeim Kopieren von Bibliothekselementen in POSIX-Dateien oder umgekehrt ist Voraussetzung,dass das Software-Produkt LMS installiert ist. Unterstützte Attribute von DVS-Dateienbs2cp unterstützt nur Dateiattribute, die auch vom C-Laufzeitsystem bei STREAM I/O unterstützt werden, d.h. SAM-Dateien mit fester Satzlänge können nur binär (ftyp binary) geöffnet werden. Folgende Dateiattribute werden mit ftyp binary unterstützt: FCB- REC- BLKCTRL BLKSIZE (STD,n) RECSIZE (r Byte) Max. Anz. TYPE FORM Datenbyte --------------------------------------------------------------------- SAM F PAMKEY 1<=n<=16 1<=r<=n*2048 RECSIZE SAM F DATA(2K) 1<=n<=16 1<=r<=n*2048-16 RECSIZE SAM F DATA(4K) 2<=n<=16 1<=r<=n*2048-16 RECSIZE SAM V PAMKEY 1<=n<=16 4<=r<=n*2048-4 RECSIZE - 4 SAM V DATA(2K) 1<=n<=16 4<=r<=n*2048-16 RECSIZE - 4 SAM V DATA(4K) 2<=n<=16 4<=r<=n*2048-16 RECSIZE - 4 SAM U PAMKEY 1<=n<=16 BLKSIZE SAM U DATA(2K) 1<=n<=16 BLKSIZE - 16 SAM U DATA(4K) 2<=n<=16 BLKSIZE - 16 PAM PAMKEY 1<=n<=16 BLKSIZE PAM DATA(2K) 1<=n<=16 BLKSIZE - 12 PAM DATA(4K) 2<=n<=16 BLKSIZE - 12 PAM NO(2K) 1<=n<=16 BLKSIZE PAM NO(4K) 2<=n<=16 BLKSIZE Folgende Dateiattribute werden mit ftyp text unterstützt: FCB- REC- BLKCTRL BLKSIZE (STD,n) RECSIZE (r Byte) Max. Anz. TYPE FORM Datenbyte --------------------------------------------------------------------- SAM V PAMKEY 1<=n<=16 4<=r<=n*2048-4 RECSIZE - 4 SAM V DATA(2K) 1<=n<=16 4<=r<=n*2048-16 RECSIZE - 4 SAM V DATA(4K) 2<=n<=16 4<=r<=n*2048-16 RECSIZE - 4 SAM U PAMKEY 1<=n<=16 BLKSIZE SAM U DATA(2K) 1<=n<=16 BLKSIZE - 16 SAM U DATA(4K) 2<=n<=16 BLKSIZE - 16 ISAM PAMKEY 1<=n<=16 12<=r<=n*2048 BLKSIZE ISAM DATA(2K) 1<=n<=16 12<=r<=n*2048 BLKSIZE - 12 ISAM DATA(4K) 2<=n<=16 12<=r<=n*2048 BLKSIZE - 12 Bei ISAM-Dateien werden die Satzschlüssel nicht übertragen. Ein Kopieren von temporären Dateien aus dem BS2000 sowie über Remote File Access ist nicht möglich. Beispiel-Tabelle zur Option -tAufbau einer EBCDIC-Standardtabelle, bei deren Zuweisung als Zieldatei eine 1:1 Kopie der Quelle entsteht: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF |
Fehler
pfadname pfadname pfadname pfadname
Bei der Option -t wurde eine fehlerhafte Konvertierungstabelle angegeben.
Die Optionen -k und -t können nicht gleichzeitig benutzt werden.
lib lib datei pfadname: pfadname
In der Elementangabe fehlt die schließende Klammer (Eine öffnende Klammer wurde gefunden).
Als datei wurde
Als Quelle und Ziel wurden ein Bibliothekselement und eine BS2000-Datei oder umgekehrt angegeben.
In der Elementangabe fehlt die öffnende Klammer. (Eine schließende Klammer wurde gefunden).
Der angegebene Elementname ist länger als 64 Zeichen.
In der Elementangabe für Format 1 fehlt der Elementname.
Die angegebene Elementversion ist länger als 24 Zeichen.
Der angegebene Typ ist nicht
In der Elementangabe fehlt der Bibliotheksname.
Der Bibliotheksname ist länger als 54 Zeichen.
Die Elementangabe endet mit mehr als einer schließenden Klammer.
Die Elementangabe enthält mehr als eine öffnende Klammer.
Die Elementangabe enthält mehr als die drei durch Kommata getrennten Angaben elem, type, vers. |
Beispiel 1
Die BS2000-Datei fachliteratur soll mit gleichem Namen in das Dateiverzeichnis /usr/fl kopiert werden. Der Zeichensatz soll von EBCDIC nach ASCII umcodiert werden (Option -k). $ |
Beispiel 2
Die Datei fachliteratur im POSIX-Dateisystem soll mit Namen flcopy ins BS2000 kopiert werden. Der vorhandene Zeichensatz soll unverändert beibehalten werden (keine Option -k). $ |
Beispiel 3
Die Datei dokumentation ist ein Element vom Typ D in der BS2000-PLAM-Bibliothek produkt. Das Element soll in das Dateiverzeichnis /usr/produkt kopiert werden. $ |
Beispiel 4
$ |
Beispiel 5
$ Erzeugt wird die PLAM-Bibliothek CLIB mit folgendem Inhalt: TYP NAME VER (VAR#) DATE (S) PHRCV.C 300 (0001) 2008-05-27 (S) PHRMGT.C 300 (0001) 2008-05-27 (S) PHRUPOS.C 300 (0001) 2008-05-27 |
Beispiel 6
|
Beispiel 7
Aus der BS2000-PLAM-Bibliothek $USER2.DOCLIB sollen alle Elemente vom Typ D, deren Namen mit KVH beginnen und die die Version 300 haben, in das Dateiverzeichnis /home/usr/doku kopiert werden, wobei den Namen der Kopien das Präfix doc. vorangestellt werden soll.
|
Siehe auch
bs2file, ftyp |