Der einfache Suchbefehl wird nicht ausgeführt

Der einfache Suchbefehl wird nicht ausgeführt

Ich bin ziemlich neu bei Linux und versuche derzeit, den folgenden Befehl auszuführen,

find ~ -name apt.no

Ich suche apt.noin einem anderen Verzeichnis, das als aufgeführt ist montrose-files.

Es erfolgt keine Reaktion von der Shell, sondern es wird einfach eine neue Zeile erstellt. Kann mir bitte jemand erklären, warum dies nicht einmal ein Ergebnis liefert?

bbcharlieca@myvm:~$ find ~ -name apt.no
bbcharlieca@myvm:~$ █

Bildbeschreibung hier eingeben

Antwort1

Ihr Befehl find ~ -name apt.nosucht nach einer Datei oder einem Verzeichnis mit dem Namen *apt.no in Ihrem $HOMEVerzeichnis und in allen darunterliegenden Verzeichnissen. (Das ~steht für Ihr eigenes Home-Verzeichnis.)

Sofern sich die Datei nicht montrose-filesin Ihrem eigenen Home-Verzeichnis befindet, wird sie nicht durchsucht und die Zieldatei wird nicht gefunden. Wenn sie montrose-filessich beispielsweise in einem anderen Pfad befindet, müssen Sie diesen Pfad angeben:

find /path/to/montrose-files -name 'apt.no' -print

montrose-filesVerwirrenderweise wird auch dieser nicht durchsucht , wenn Sie zuvor einen symbolischen Link in Ihrem Home-Verzeichnis erstellt haben , da findsymbolische Links standardmäßig nicht verfolgt werden. Sie können das auf zwei Arten beheben:

find ~ -follow -name 'apt.no' -print
find ~/montrose-files/ -name 'apt.no' -print

Im ersten Ansatz sprechen wir findvon followsymbolischen Links. Bei einigen Versionen findkann dies ein schlechter Ansatz sein, denn wenn ein symbolischer Link in einer Schleife herumzeigt, kann es passieren, dass Sie die Struktur mehrmals durchlaufen.

Beim zweiten Ansatz erzwingen wir die Auflösung des symbolischen Links zu einem realen Verzeichnisziel, indem wir einen abschließenden Schrägstrich anhängen.

Beachten Sie abschließend, dass ich in allen Fällen den Dateinamen, nach dem ich suche, in Anführungszeichen gesetzt habe. In Ihrem einfachen Fall macht das keinen Unterschied, aber wenn Sie anfangen, Platzhalter zu verwenden, um unbekannte Teile von Dateinamen abzugleichen (z. B. apt.*), sollten Sie die einfachen Anführungszeichen verwenden, um sicherzustellen, dass die Platzhalter nicht von der Shell verarbeitet werden, bevor findsie darauf zugreifen kann. Es ist eine gute Idee, sich anzugewöhnen, Argumente in Anführungszeichen zu setzen.


* Technisch gesehen wird es mit jedem beliebigen Element übereinstimmen, aber es ist unwahrscheinlich, dass Sie Pipes, Sockets oder Geräteknoten in Ihrem Home-Verzeichnis haben

verwandte Informationen