Verwendung:
find /dir/to/search -type f | xargs file | grep text
find
gibt Ihnen eine Liste von Dateien.
xargs file
wird file
ausführen Befehl in jeder der Zeilen aus der Pipe-Eingabe.
finden und Datei sind deine Freunde hier:
find /dir/to/search -type f -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
Dies findet alle Dateien (ANMERKUNG:es findet keine Symlinks, Verzeichnisse, Sockets usw., nur normale Dateien) in /dir/to/search und führen Sie sh -c 'file -b {} | aus grep text &>/dev/null'; die den Dateityp ansieht und nach Text in der Beschreibung sucht. Wenn dies wahr zurückgibt (d. h. Text in der Zeile ist), wird der Dateiname ausgegeben.
HINWEIS:Die Verwendung des Flags -b für Datei bedeutet, dass der Dateiname nicht gedruckt wird und daher keine Probleme mit grep verursachen kann . Z. B. ohne -b
Flag die Binärdatei gettext würde fälschlicherweise als Textdatei erkannt.
Zum Beispiel
[email protected]# find /bin -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
/bin/gunzip
/bin/svnshell.sh
/bin/unicode_stop
/bin/unicode_start
/bin/zcat
/bin/redhat_lsb_init
[email protected]# find /bin -type f -name *text*
/bin/gettext
Wenn Sie in komprimierten Dateien suchen möchten, verwenden Sie den --uncompress
Flagge zu Datei. Weitere Informationen und zu archivierende Flags finden Sie unter man file.