Come posso cercare ricorsivamente i nomi delle directory con una stringa particolare in cui la stringa è solo una parte del nome della directory

57

Come posso cercare ricorsivamente i nomi delle directory con una stringa particolare in cui la stringa è solo una parte del nome della directory?

Ad esempio: il nome della directory è "8.0.3-99966_it", ma voglio ricorsivamente cercare le directory con la stringa "99966".

    
posta Bob Perez 19.06.2012 - 19:12

4 risposte

74

Puoi utilizzare il comando find :

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

Esempio:

find ~ -type d -name "*99966*" -print

dovrebbe trovare tutte le directory ( -type d ) a partire dalla tua directory home ( ~ ) che hanno il loro nome contenente la stringa "99966" ( -name "*99966*" ) ed emetterle ( -print ).

    
risposta data lgarzo 19.06.2012 - 19:18
14

Per evitare tutti i risultati di "Autorizzazione negata", puoi utilizzare:

find / -type d -name "*99966*" -print 2>/dev/null

Vedi questo articolo su dispositivo nullo e questo su stream standard per ulteriori informazioni.

    
risposta data Dan Fletcher 11.02.2015 - 23:18
4

È possibile reindirizzare l'output a grep per far sì che evidenzi il nome della directory
Qualcosa come

find / -type d | grep "directory name"

Il / indica la ricerca su tutto il computer

    
risposta data Collin 26.12.2016 - 19:49
3

Un modo semplice per farlo è usare find | egrep string . Se ci sono troppi riscontri, usa il flag -type d per trovare. Esegui il comando all'inizio dell'albero della directory che vuoi cercare, oppure dovrai fornire la directory come argomento anche a find .

Un altro modo per farlo è usare ls -laR | egrep ^d .

E anche il comando locate è utile: locate string

    
risposta data belacqua 19.06.2012 - 19:32

Leggi altre domande sui tag