Risposte:
O...
find $directory_name -name \*.sql
Per esempio
find / -name \*.sql
O
find ~ \*.sql
(dove ~ equivale a / home / nome_utente /) o ...
find /usr/local/share/ \*.sql
e così via.
Esegui questo nella riga di comando:
cd / && find | grep '\.sql$'
Cambia '/' nella directory che vuoi cercare.
Il find
comando è in grado di eseguire l'attività senza grep (utilizzando opzioni extra), ma trovo più conveniente l'utilizzo di cui sopra.
In ordine, il comando sopra:
cd /
)find
)| grep '\.sql$'
)find
ha già funzionalità di filtro
So che questo è un vecchio post, ma sono piuttosto nuovo in questo e ho trovato un modo semplice per trovare tutti i file di una determinata estensione in una directory e nelle sue sottodirectory secondarie. Bene, prima vai su parent Directory
allora find . -name '*.sql'
e troverai tutti i file con estensione .sql nelle directory e nelle sue sottodirectory.
Nel mio caso volevo eliminare tutto il .xml file nella directory e nelle sue sottodirectory, quindi quello che ho fatto di più è che ho aggiunto Rimuovi come quifind . -name '*.xml' | xargs rm
Spero che questo aiuti qualcuno :)
find
capisce il -delete
comando. Non c'è bisogno di coinvolgere rm
. Oppure puoi usare il -exec
comando per invocarlo direttamente senza la deviazione attraverso una pipe e xargs
.
locate -br \\.sql$ | egrep '^/folder/path/'
Se non è installato, installarlo in precedenza con:
sudo apt install mlocate
mlocate.db
un'istanza aggiornata che non è configurata immediatamente in Ubuntu (I blieve). Inoltre, perché non semplicemente locate '/folder/path/*.sql'
?
locate
abbia impostazioni diverse da regex utilizzate inegrep
locate
corrisponde a espressioni glob come /folder/path/*.sql
, non espressioni regolari.
man locate
quando -r, --regexp REGEXP - Search for a basic regexp REGEXP
ho capito, ho pensato che fosse una regex. Comunque ho provato la tua "espressione globale" ma non funziona, mi dispiace
--regex
non specificato, gli PATTERN
s possono contenere caratteri sconvolgenti". ( Fonte )