Mit find kannst Du auf allen Unix basierenden Systemen nach Dateien suchen – also auch unter Linux und Mac OS. Hier findest Du einen Spickzettel für die richtige Syntax der Suche. Ich vergesse auch immer wieder die korrekte Schreibweise, also teile ich meinen Spickzettel mit Dir.
Inhalt
So suchst Du mit find
find / -type f -name "filename"
Der Befehl find sucht in Unixbasierten Systemen nach Dateien.
‚/‘ bedeutet in diesem Fall das root Verzeichnis, dh. es werden alle Unterverzeichnisse auf der Platte durchsucht.
‚-type f‘ findet nur reguläre Dateien. Verzeichnisse, Sockets, etc. werden ausgelassen.
‚-name‘ steht für den Namen der Datei, die gefunden werden soll. Dabei ist es möglich nur Teile des Namens einzugeben.
Im aktuellen Verzeichnis suchen
Wenn Due nur im aktuellen Verzeichnis und allen Unterverzeichnissen suchen möchtest, dann ersetzt Du das „/“ gegen „.“, also wie folgt:
find . -type f -name "filename"
find alle JPEG Bilder suchen
find . -type f -name "*.jpg"
Sucht im aktuellen Verzeichnis und allen Unterverzeichnissen nach .jpg Bildern
find alle Mimetype „Bilder“ suchen
Findet alle Dateien des Typs Bild – egal welcher Endung
find . -type f -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'
Beispiel der Ausgabe:
find Ergebnis in eine Datei schreiben
Am ersten Beispiel wäre das:
find . -type f -name "*.jpg" > liste-von-jpgs.txt
Am zweiten Beispiel:
find . -type f -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image' > liste-von-jpgs.txt
find sucht nicht rekursiv
Wenn find nicht rekursiv in allen Unterverzeichnissen sucht, dann hast Du beim -name Parameter die Quotes “ vergessen:
falsch:
find . -type f -name filename.jpg
richtig
find . -type f -name "filename.jpg"
Dann sucht find auch wieder rekursiv in allen Unterverzeichnissen eines Pfades
Letzte Änderung: