wiki:linux/Tools/find

cut, find, ps, rev, tail, watch


find manpage


Beispiele

Alle Dateien nach Text durchsuchen

$ find . -type f -print0 | xargs -0 grep 'zu suchender text' -sl

-type f: Suche nach regulären Dateien -print0: Verwendet null character als Separator. Notwendig, damit das dahinterliegende xargs -0 Leerzeichen und Zeilenumbrüche richtige deuten kann.
-0: Damit Leerzeichen in Dateinamen und Zeilenumbrüche, die von find erzeugt werden, korrekt verarbeitet werden.
-s: Für summary unterdrückt Hinweise wie './foo.txt : Is a directory
-l: Für list um nur die Dateinamen und nicht den kompletten match-Output anzuzeigen

Die xargs manpage schreibt zu den print0 und -0 Argumenten:

Because Unix filenames can contain blanks and newlines, this default
behaviour is often problematic; filenames containing blanks and/or
newlines are incorrectly processed by xargs. In these situations it
is better to use the -0 option, which prevents such problems.
When using this option you will need to ensure that the program
which produces the input for xargs also uses a null character as
a separator. If that program is GNU find for example, the -print0
option does this for you.

Bestimmte Dateien nach Text durchsuchen

$ find -iname '*txt' -type f -print0 | xargs -0 grep 'suchtext' -sl

-iname: Wie name allerdings wird Groß-/Kleinschreibung ignoriert

Alle jpg-Dateien im Verzeichnis Music und Video finden

find Music Video -type f -name '*jpg'

Alle jpg-Dateien im Verzeichnis 'MUSIC' löschen

find MUSIC -type f -name '*jpg' -print0 | xargs -0 rm

Mit Sicherheitsabfrage

find MUSIC -type f -name '*jpg' -exec rm -i {} \;

Der -i Parameter funktioniert nicht in Verbindung mit xargs, da xargs keine Interaktion zulässt.

Last modified 8 months ago Last modified on Apr 1, 2019, 3:47:25 PM