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 findcomando è 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$')findha 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 Directoryallora 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 :)
findcapisce il -deletecomando. Non c'è bisogno di coinvolgere rm. Oppure puoi usare il -execcomando 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.dbun'istanza aggiornata che non è configurata immediatamente in Ubuntu (I blieve). Inoltre, perché non semplicemente locate '/folder/path/*.sql'?
locateabbia impostazioni diverse da regex utilizzate inegrep
locatecorrisponde a espressioni glob come /folder/path/*.sql, non espressioni regolari.
man locatequando -r, --regexp REGEXP - Search for a basic regexp REGEXPho capito, ho pensato che fosse una regex. Comunque ho provato la tua "espressione globale" ma non funziona, mi dispiace
--regexnon specificato, gli PATTERNs possono contenere caratteri sconvolgenti". ( Fonte )