Per eliminare gli errori di autorizzazione (e simili), puoi reindirizzare stderr verso il nulla
find / -name "something" 2>/dev/null
"Purtroppo questo sembra controllare solo la directory corrente, non l'intera cartella". Presumibilmente vuoi dire che non cerca nelle sottodirectory. Per risolvere questo problema, usa find -name "filename"
Se il file in questione non si trova nella directory di lavoro corrente, puoi cercare in tutto il tuo computer tramite
find / -name "filename"
Questo funziona anche con cose come find / -name "*.pdf"
, ecc. A volte mi piace inserirlo anche in un'istruzione grep (poiché, almeno sulla mia macchina, evidenzia i risultati), quindi finisco con qualcosa come
find / -name "*star*wars*" | grep star
Fare questo o un metodo simile mi aiuta solo a trovare immediatamente il nome del file e a riconoscere se è effettivamente il file che sto cercando.
Il find
il comando richiederà molto tempo, il modo più veloce per cercare il file è usare locate
comando, che cerca i nomi dei file (e il percorso) in un database indicizzato (aggiornato dal comando updatedb
).
Il risultato apparirà immediatamente con un semplice comando:
locate {file-name-or-path}
Se il comando non viene trovato, devi installare mlocate
pacchetto ed eseguire updatedb
comando first per preparare il database di ricerca per la prima volta.
Maggiori dettagli qui:https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
Se è necessario trovare nidificato in alcune directory:
find / -type f -wholename "*dirname/filename"
O cartelle connesse:
find / -type d -wholename "*foo/bar"