Warum findet „find“ manchmal und manchmal nicht?

Warum findet „find“ manchmal und manchmal nicht?
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.11falls es wichtig ist ...

Antwort1

Ohne das starting pointfor findwird .(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 finddas .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?)findfind...

man findWeitere Informationen finden Sie unter.

verwandte Informationen