Mi piacerebbe trovare file leggibili dall'uomo sulla mia macchina Linux senza un limite di estensione del file. Questi file dovrebbero essere di file di rilevamento umano come file di testo, configurazione, html, codice sorgente ecc. Potresti suggerire un modo per filtrare e localizzare.Trovare file leggibili su Unix
risposta
ritrovamento e il file sono i tuoi amici qui:
find /dir/to/search -type f -exec sh -c 'file -b {} | grep text &>/dev/null' \; -print
questo troveranno tutti i file (NOTA: non troverà i link simbolici directory prese ecc solo i file regolari) in/dir/a/di ricerca ed eseguire sh - c 'file -b {} | grep text &>/dev/null '\; che guarda il tipo di file e cerca il testo nella descrizione. se restituisce true (cioè il testo è nella riga), stampa il nome del file.
NOTA: utilizzare il flag -b per i filemeans che il nome del file non viene stampato e quindi non può creare alcun problema con grep. es. senza il flag -b il file binario gettext verrebbe erroneamente rilevato come un file di testo.
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
EDIT:
Se si vuole guardare in file compressi usano la bandiera --uncompress file. per maggiori informazioni e bandiere per file Vedere man file
Sono nuovo nell'ecosistema unix-like. Perché stai usando "&" alla fine del tuo 'grep'? La mia comprensione è che questo renderà grep eseguito in modo asincrono. Questo ancora darà lo stato di uscita a 'find'? Perché dovrebbe farlo? Grazie per aver trovato il tempo di rispondere. –
Come su
find /dir/to/search -type f | xargs file | grep text
find
vi darà un elenco di file.
xargs file
eseguirà il comando file
su ciascuna delle righe dall'input del pipe.
Funziona perfettamente!Bella soluzione – fuuman
io uso
file directory/to/search/*
Ad esempio, per trovare solo i file leggibili in una directory chiamata uso domestico:
file home/*
e il file leggibile avrà un formato come testo ASCII
Questo non fornisce il metodo per filtrare il file tranne per cercare manualmente i tipi di file. – blissfool
- 1. Come trovare linee duplicate su 2 file diversi? Unix
- 2. Trovare tutti i file con determinate estensioni in Unix?
- 3. Comando per trovare informazioni sulle CPU su una macchina UNIX
- 4. Funzionerà su Unix?
- 5. Come trovare il motivo di un processo morto senza file di registro su unix?
- 6. Moduli Python più leggibili
- 7. Node.js Stream leggibili per trasformare
- 8. unix redirect tail to file
- 9. Sostituzione stringa nel file Unix
- 10. Dimensioni del file leggibili con il sistema di templatura Twig
- 11. trovare contenuto di un file in un altro file in UNIX shell script
- 12. Tempo di modifica file su UNIX utilizzando utime in C
- 13. Apertura di un file su unix utilizzando C++
- 14. Emacs: ottenere leggibili keyboard-macro
- 15. pitone umano grandi numeri leggibili
- 16. tabelle file di sistema Unix
- 17. confrontare due file in UNIX
- 18. Unix trova la dimensione media del file
- 19. Trova file, rinomina in posto unix bash
- 20. unix "which java" comando equivalente su windows?
- 21. Regex per le cifre in Unix trovare comando
- 22. Come posso usare pow() & sqrt() su UNIX?
- 23. Estrai allegati e-mail su Unix
- 24. Verificare la voce ODBC su Unix
- 25. Errore utility schermo Unix: Impossibile trovare termcap per 'xterm-256color'
- 26. Compilare più file .hs di Haskell - Unix
- 27. UNIX: Come usare trovare comando per trovare il percorso completo se dato percorso parziale
- 28. Un modo veloce per trovare una stringa nel file in unix
- 29. Come usare ls per trovare i file per una serie specifica di date in Unix
- 30. Il modo più veloce per trovare le differenze tra due file in unix?
L'utilità 'file' è abbastanza buona per determinare il tipo di contenuto in un file. Forse potresti usare questo e filtrare i file in base al suo output. – cdhowie
Solo per AFAIK Windows si fida dell'estensione del file. I SO tipo UNIX usano 'file'. Ad ogni modo, devi definire "leggibile". – m0skit0
Quanto deve essere esattamente questo? E stai cercando OGNI file nel sistema, o solo in una parte selezionata del sistema? Cosa succede se il sistema dispone di un terpesto di terabyte di dischi collegati, è accettabile attendere alcune ore (perché è quanto tempo ci vuole per leggere tutti i file effettivamente)? –