Gibt es Befehle, um Ihren Mac mit dem Terminal zu durchsuchen? Ich habe versucht, mit grep zu suchen, aber es scheint nicht mehr zu reagieren, und es kommt nichts heraus.
Zum Beispiel würde ich "grep Files" (Ein Ordnername) eingeben und es wird nur eine leere Zeile gedruckt und nichts passiert.
Antworten:
Sie können den
mdfind
Befehl auch verwenden , um eine Suche mit Spotlight durchzuführen. Mehr Infos hier .Verwenden Sie diese
mdfind -name searchterm
Option, um Dateien mit dem Namen abzurufensearchterm
. Verwenden Siemdfind searchterm
diese Option, um nach Dateinamen und Inhalten zu suchen.quelle
Wenn Sie nur Dateien mit einem bestimmten Namen suchen möchten, verwenden Sie
find
Die Manpage finden Sie HIER oder durch Eingabe
man find
an der Eingabeaufforderung des Terminals.Grundsätzlich sucht find rekursiv nach einer Datei, die den von Ihnen angegebenen Kriterien entspricht. Das einfachste Beispiel:
find . -name file_name -print
Das wird nach einer Datei mit dem Namen "Dateiname" suchen, die im aktuellen Verzeichnis beginnt und darunter sucht, und die Dateien mit diesem Namen drucken.
find ~ -name ".DS_Store" -delete
Dadurch werden alle .DS_Store-Dateien gefunden und gelöscht.
Sie können nach Name, Regex und Datum suchen. Sie können mit dem
-exec
Prädikat auf eine beliebige Unix-Art auf die Datei einwirken .Sie können find auch als Start einer komplexeren Aktionspipeline verwenden. Beispiel:
find . -type f -print | egrep -i '\.m4a$|\.mp3$'
Findet alle Dateien mit den Endungen .m4a oder .mp3
find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l
Gibt Ihnen eine Anzahl dieser Dateien.
quelle
-print
das einzige Prädikat ist, kann es weggelassen werden. Es gibt auch einfaches Globbing. Das Auffinden aller.txt
Dateien in einem Verzeichnisfoo
erfolgt also mitfind foo -name \\*.txt
find .
ist rekursiv aus dem cwd. Versuchen Sie,find .
in Ihr Stammverzeichnis zu tippen!Wenn Sie einen ganzen Ordner durchsuchen möchten, verwenden Sie einfach -r auf grep:
Mit find können Sie auch xargs verwenden:
oder um sicherzustellen, dass Sie zwei Dateien gleichzeitig durchsuchen und daher die Dateinamen angegeben haben:
quelle
grep
erwartet sowohl ein Muster als auch eine Dateispezifikation. Fehlt eines, wird das als Muster übergebene Muster verwendet und auf die Suche nach Daten über die Standardeingabe gewartet.Wenn Sie eine komplexere Dateispezifikation verwenden möchten, verwenden Sie
find
.quelle
-exec
Prädikat nicht in verwendenfind
.