Um Berechtigungsfehler (und dergleichen) loszuwerden, können Sie stderr nach nirgendwo umleiten
find / -name "something" 2>/dev/null
"Leider scheint dies nur das aktuelle Verzeichnis zu überprüfen, nicht den gesamten Ordner". Vermutlich meinen Sie, dass es nicht in Unterverzeichnissen sucht. Um dies zu beheben, verwenden Sie find -name "filename"
Befindet sich die betreffende Datei nicht im aktuellen Arbeitsverzeichnis, können Sie über
Ihre gesamte Maschine durchsuchenfind / -name "filename"
Das funktioniert auch mit Dingen wie find / -name "*.pdf"
usw. Manchmal leite ich das auch gerne in eine grep-Anweisung ein (da es zumindest auf meinem Computer die Ergebnisse hervorhebt), sodass ich am Ende so etwas wie
find / -name "*star*wars*" | grep star
Diese oder eine ähnliche Methode hilft mir dabei, den Dateinamen sofort zu finden und zu erkennen, ob es sich tatsächlich um die gesuchte Datei handelt.
Die find
Der Befehl wird lange dauern, der schnellste Weg, um nach einer Datei zu suchen, ist die Verwendung von locate
Befehl, der nach Dateinamen (und Pfad) in einer indizierten Datenbank sucht (aktualisiert durch Befehl updatedb
).
Das Ergebnis wird sofort mit einem einfachen Befehl angezeigt:
locate {file-name-or-path}
Wenn der Befehl nicht gefunden wird, müssen Sie mlocate
installieren Paket und führen Sie updatedb
aus Befehl zuerst, um die Suchdatenbank zum ersten Mal vorzubereiten.
Mehr Details hier:https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
Wenn Sie in einigen Verzeichnissen verschachtelt finden müssen:
find / -type f -wholename "*dirname/filename"
Oder verbundene Verzeichnisse:
find / -type d -wholename "*foo/bar"