Sie vermissen einfach das Prädikat, das sagt, wonach Sie suchen (z -name
. B. )
So finden Sie im Home-Verzeichnis nach Namen:
find ~ -name \*.pdf
Beachten Sie, dass der Platzhalter maskiert werden *
muss, damit die Shell ihn nicht interpretiert, bevor find ihn in die Hände bekommt. Die Verwendung von '*.pdf'
und "*.pdf"
hat den gleichen Effekt wie \*.pdf
.
So unterscheiden Sie zwischen Groß- und Kleinschreibung:
find ~ -iname \*.pdf
Um die Ergebnisse nur auf Dateien zu bereinigen (der Namensausdruck wird dies wahrscheinlich für Sie erledigen, aber nur für den Fall, dass Sie Verzeichnisse mit seltsamen Namen haben):
find ~ -type f -iname \*.pdf
Um sicherzustellen, dass find folgenden symbolischen Links folgt (ich möchte dies normalerweise selbst tun, wenn ich suche):
find ~ -follow -type f -iname \*.pdf
So tun Sie etwas mit den gefundenen Dateien: Sie können diese mithilfe der Standardumleitung (z. B. am > filename
Ende anheften ) in eine Datei kopieren oder die -exec
Option zum Ausführen eines Befehls verwenden (Einzelheiten finden Sie in der Manpage). Letzterer führt jedoch jeweils einen Befehl für jede Datei aus. Es ist oft schneller, den xargs
Befehl Ihre gefundenen Dateien als Argumente an einen anderen Befehl übergeben zu lassen, alles auf einmal oder große Teile gleichzeitig. Zum Beispiel für Ad-hoc-Greps (aber nicht indizierte) Greps durch Header-Dateien:
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
Und eine letzte Erweiterung, damit dieser letzte Befehl ordnungsgemäß funktioniert, wenn Sie Dateien und Verzeichnisse mit Leerzeichen haben:
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
find
ist alles andere als nutzlos.