find -name "?"
find ~ -name "?"
Warum findet einer dieser Befehle den Eintrag .
und der andere nicht? Wie kann ich erreichen, dass die zweite Version mit einem expliziten Pfad den .
Eintrag zusammen mit jeder anderen einstelligen Datei im angegebenen Verzeichnis findet?
find (GNU findutils) 4.5.11
falls es wichtig ist ...
Antwort1
Ohne das starting point
for find
wird .
(das aktuelle Verzeichnis) verwendet. Tatsächlich erzeugen diese beiden Zeilen die gleiche Ausgabe:
find -name "?"
find . -name "?"
Um einen Startpunkt angeben zu könnenUndHaben Sie find
das .
Verzeichnis gefunden, fügen Sie es /.
zu Ihrem Ausgangspunkt hinzu, also:
find ~/. -name "?"
Bearbeiten: Um nun die Frage nach dem Warum zu stellen, vergleichen wir diese beiden Befehle:
find ~/. -name "?"
find ~ -name "?"
Es gibt zwei Unterschiede in ihrer Ausgabe. Erstens /.
erzeugt der Befehl mit Ergebnisse mit einem Extra /.
in jeder Zeile, wie zu erwarten. Zweitens, und das war die Kernfrage des OP, findet der /.
Befehl das ~/.
Pseudoverzeichnis selbst, der ~
Befehl jedoch nicht. Dies liegt daran, dass die ~/.
Suche explizit anfordert, dass gesucht wird. Sofern es nicht in der Befehlszeile .
aufgeführt ist , werden die und Pseudoverzeichnisse ignoriert . (Können Sie sich vorstellen, wenn dies nicht der Fall wäre?)find
find
.
..
man find
Weitere Informationen finden Sie unter.