Usa:
find /dir/to/search -type f | xargs file | grep text
find
ti darà un elenco di file.
xargs file
eseguirà file
comando su ciascuna delle righe dall'input reindirizzato.
trova e file sono tuoi amici qui:
find /dir/to/search -type f -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
Questo troverà qualsiasi file (NOTA:non troverà collegamenti simbolici directory socket, ecc., solo file regolari) in /dir/to/search ed esegui sh -c 'file -b {} | testo grep &>/dev/null'; che esamina il tipo di file e cerca il testo nella descrizione. Se questo restituisce true (cioè, il testo è nella riga), allora stampa il nome del file.
NOTA:usare il flag -b per file significa che il nome del file non viene stampato e quindi non può creare alcun problema con grep . Ad esempio, senza il -b
flag il file binario gettext verrebbe erroneamente rilevato come file di testo.
Ad esempio,
[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
Se vuoi cercare nei file compressi usa --uncompress
bandiera da archiviare. Per ulteriori informazioni e flag da archiviare vedere man file.