Unterschied zwischen Test -h und Test -L

8

Was ist der Unterschied zwischen test -L filename und test -h filename in der ksh-Shell? Von der Manpage aus wurden beide verwendet, um einen symbolischen Link zu identifizieren, aber ich möchte den genauen Unterschied wissen.

Hier ist die Beschreibung von der man-Seite.

%Vor%     
Sachin Chourasiya 04.01.2010, 05:37
quelle

4 Antworten

15

Der Quellcode für ksh93 in der Datei bltins/test.c zeigt, dass diese beiden Optionen genau gleich behandelt werden, mit Ausnahme der Hoffnungen des Autors für die Zukunft:

%Vor%

Daraus schließe ich, dass sie sich genau gleich verhalten, aber dass -h eine Legacy-Option ist und vielleicht eines Tages verschwinden wird :-)

    
Norman Ramsey 04.01.2010, 06:37
quelle
7

Es scheint, dass beide aus Legacy-Gründen existieren, um zwischen verschiedenen Versionen von Unix kompatibel zu sein. Sie sollten in der Lage sein, einen zu verwenden, da sie dasselbe tun, aber beachten Sie, dass das System, auf dem Sie arbeiten, nicht mit den neuesten Standards kompatibel ist, da es das eine oder das andere vermisst.

Beide Formulare sind in der Single Unix Specification Version 3 / POSIX 2004 enthalten Vorbehalte:

-h Pfadname
Wahr, wenn Pfadname in eine Datei aufgelöst wird, die existiert und eine symbolische Verbindung ist. False, wenn Pfadname nicht aufgelöst werden kann, oder wenn Pfadname in eine Datei aufgelöst wird, die zwar existiert, aber keine symbolische Verknüpfung ist. Wenn die letzte Komponente von Pfadname ist a Symlink, dieser Symlink wird nicht gefolgt.
-L Pfadname
Wahr, wenn Pfadname in eine Datei aufgelöst wird, die existiert und eine symbolische Verbindung ist. False, wenn Pfadname nicht aufgelöst werden kann, oder wenn Pfadname in eine Datei aufgelöst wird, die zwar existiert, aber keine symbolische Verknüpfung ist. Wenn die letzte Komponente von Pfadname ist a Symlink, dieser Symlink wird nicht gefolgt.

Laut der% man-Seite test(1) unter Mac OS X und FreeBSD (beachten Sie, dass diese Warnung möglicherweise veraltet, es erschien erstmals 1996 in NetBSD ):

%Vor%

Und anscheinend unterstützen einige Versionen von Solaris test nur -h und (noch 2003) Einige Software-Programme sind aus Kompatibilitätsgründen auf -h umgestellt worden, daher kann -h Ihre beste Wette sein .

    
Brian Campbell 04.01.2010 05:41
quelle
2

Es gibt keinen Unterschied, sie sind genau gleich. Sie existieren wahrscheinlich, um verschiedene test Implementierungen vor POSIX zu vereinheitlichen.

    
Nietzche-jou 04.01.2010 05:42
quelle
1

Fedoras Manpage sagt

%Vor%     
wallyk 04.01.2010 05:42
quelle

Tags und Links