Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pathchk(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

test(1)

fpathconf(2)

pathchk(1)                                                       pathchk(1)

NAME
     pathchk - Pfadnamen überprüfen

SYNTAX
     pathchk [-p] pathname ...

BESCHREIBUNG
     Das Kommando pathchk überprüft, ob ein oder mehrere Pfadnamen gültig
     sind (d. h. sie können zum Zugriff auf eine Datei oder zum Erstellen
     einer Datei verwendet werden, ohne einen Syntaxfehler zu verursachen)
     und ob sie portierbar sind (d. h. es ist keine Namensanpassung nötig).
     Weiterreichende Prüfungen zur Portierbarkeit können mit der Option -p
     durchgeführt werden.

     Standardmäßig überprüft das Kommando pathchk die Komponenten aller
     pathname-Argumente auf der Basis des zugrundeliegenden Dateisystems.
     In folgenden Fällen wird eine Fehlermeldung zu dem betroffenen
     pathname-Argument ausgegeben:

     -  Es ist länger als die maximal zulässige Länge von Pfadnamen
        (PATHMAX Byte).

     -  Es enthält eine Komponente, die länger ist als die maximal zuläs-
        sige Länge von Dateinamen (NAMEMAX Byte) im jeweiligen Verzeich-
        nis.

     -  Er enthält eine Komponente in einem Verzeichnis, das nicht durch-
        sucht werden kann.

     -  Er enthält eine Komponente mit Zeichen, die im jeweiligen Verzeich-
        nis ungültig sind.

     Es ist kein Fehler für pathchk, wenn eine oder mehrere Komponenten
     eines Arguments pathname nicht existieren, solange eine Datei mit dem
     angegebenen Pfadnamen erstellt werden kann, die die oben aufgeführten
     Überprüfungen erfüllt.

OPTIONEN
     -p   Führt die Überprüfungen nicht für das zugrundeliegende Dateisy-
          stem durch, sondern auf Grundlage allgemeiner Portabilitätsbedin-
          gungen. In folgenden Fällen wird eine Fehlermeldung zu dem
          betroffenen Argument pathname ausgegeben:

          -  Es ist länger als die maximal zulässige Länge für portierbare
             Pfadnamen (POSIXPATHMAX Byte).

          -  Es enthält eine Komponente, die länger ist als die maximale
             Länge für portierbare Dateinamen (POSIXNAMEMAX Byte).

          -  Er enthält eine Komponente mit Zeichen, die nicht in der por-
             tierbaren Zeichenmenge für Dateinamen enthalten sind.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

pathchk(1)                                                       pathchk(1)

     pathname
          Der zu überprüfende Pfadname.

UMGEBUNGSVARIABLEN
     Die folgenden Umgebungsvariablen wirken sich auf die Ausführung von
     pathchk aus:

     LANG         Gibt einen Standardwert für die Variablen für die inter-
                  nationale Umgebung an, die nicht gesetzt oder Null sind.
                  Ist LANG nicht gesetzt oder Null, wird der entsprechende
                  Standardwert der internationalen Umgebung verwendet. Ent-
                  hält eine der Internationalisierungsvariablen eine ungül-
                  tige Einstellung, verhält sich das Kommando so, als sei
                  keine der Variablen definiert worden.

     LCALL       Ist diese Variable auf einen Wert gesetzt, d. h. ist sie
                  nicht leer, überschreibt dieser Wert die Werte alle übri-
                  gen Variablen für die internationale Umgebung.

     LCCTYPE     Legt die Interpretation von Byte-Folgen als Zeichen fest
                  (z. B. Einzelbytezeichen im Unterschied zu Mehrbytezei-
                  chen in Argumenten).

     LCMESSAGES  Legt das Format und den Inhalt von Meldungen fest.

ENDESTATUS
     0   Alle Pfadnamen waren fehlerfrei.

     >0  Ein Fehler ist aufgetreten.

DIAGNOSE
     pathchk: Subpath path is not searchable

          Fehler ENOSYS, der von dem Systemaufruf pathconf() [siehe
          fpathconf(2)] gemeldet wurde.

ANWENDUNGSHINWEISE
     Mit dem Kommando test kann überprüft werden, ob ein bestimmter Pfad-
     name eine bereits vorhandene Datei angibt. Es gibt jedoch keine Aus-
     kunft darüber, ob eine Komponente des Pfadnamens abgeschnitten wurde
     (in einem Verzeichnis, für das die Funktion POSIXNOTRUNC nicht
     aktiviert ist). Das Kommando pathchk prüft nicht, ob eine bestimmte
     Datei vorhanden ist. Es prüft lediglich, ob ein bestimmter Pfadname
     existiert bzw. ob er ohne Namensverkürzung erstellt werden kann.

     Mit der Option noclobber in der Shell [vgl. Beschreibung von set(1)]
     kann eine Datei eindeutig erstellt werden.







Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

pathchk(1)                                                       pathchk(1)

BEISPIELE
     Sie können folgendermaßen prüfen, ob alle Pfadnamen in einem impor-
     tierten Datenaustauscharchiv auf dem aktuellen System zulässig und
     eindeutig sind:

       pax -f archive | sed -e '/ == .*/s///' | xargs pathchk
       if [ $? -eq 0 ]
       then
           pax -r -f archive
       else
           echo Investigate problems before importing files.
           exit 1
       fi

     Sie können folgendermaßen prüfen, ob alle Dateien in der aktuellen
     Verzeichnishierarchie auf ein anderes System übertragen werden können,
     das allgemeine Portabilitätsbedingungen erfüllt und das Kommando
     pax(1) zur Verfügung stellt:

       find . -print | xargs pathchk -p
       if [ $? -eq 0 ]
       then
           pax -w -f archive .
       else
           echo Portable archive cannot be created.
           exit 1
       fi

     Sie können folgendermaßen überprüfen, ob ein angegebener Pfadname eine
     lesbare Datei benennt und ob eine Anwendung durch Erweiterung des
     Dateinamens eine Datei erstellen kann, deren Pfadname nicht automa-
     tisch verkürzt wird und die keine bereits vorhandene Datei über-
     schreibt.

       case $- in
           *C*)    reset="";;
           *)      reset="set +C"
                   set -C;;
       esac
       test -r "$path" && pathchk "$path.out" &&
           rm "$path.out" > "$path.out"
       if [ $? -ne 0 ]; then
           printf "%s: %s not found or %s.out fails \
                   creation checks.\n" $0 "$path" "$path"
           $reset  # reset the noclobber option in case a trap
                   # on EXIT depends on it
           exit 1
       fi
       $reset
       PROCESSING < "$path" > "$path.out"




Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

pathchk(1)                                                       pathchk(1)

     Diesem Beispiel liegt folgendes zugrunde:

     1. PROCESSING stellt den Code dar, den die Anwendung benützt, um $path
        zu verwenden, sobald überprüft worden ist, daß $path.out die
        gewünschten Bedingungen erfüllt.

     2. Der Status der Option noclobber ist unbekannt, wenn dieser Code
        aufgerufen wurde, und sollte beim Verlassen wieder auf den Status
        gesetzt werden, den er beim Aufrufen dieses Codes hatte. (Die
        Variable reset wird in diesem Beispiel zum Wiederherstellen des
        ursprünglichen Status verwendet.)

     3. Beachten Sie die Verwendung der folgenden Konstruktion:

        rm "$path.out" > "$path.out"

        a) Das Kommando pathchk hat zu diesem Zeitpunkt bereits geprüft,
           daß $path.out nicht verkürzt wird.

        b) Wenn die Option noclobber gesetzt ist, prüft die Shell vor dem
           Aufruf von rm, ob $path.out nicht bereits vorhanden ist.

        c) Wenn die Shell $path.out erfolgreich erstellt hat, entfernt rm
           diese wieder, so daß die Anwendung die Datei im Schritt PROCES-
           SING erneut erstellen kann.

        d) Wenn die Datei beim Aufrufen des Schritts PROCESSING bereits
           vorhanden sein soll, sollte

           rm "$path.out" > "$path.out"

           durch

           > "$path.out"

           ersetzt werden. Hierdurch wird sichergestellt, daß die Datei
           $path.out noch nicht vorhanden war, und sie wird gleichzeitig
           für die Verwendung durch PROCESSING angelegt.

SIEHE AUCH
     test(1), fpathconf(2).













Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026