Je souhaite rechercher tous les fichiers portant l'extension .sql dans les dossiers et sous-dossiers (récursifs).
Comment puis-je faire ceci?
Ou...
find $directory_name -name \*.sql
Par exemple
find / -name \*.sql
Ou
find ~ \*.sql
(où ~ équivaut à / home / votre_nom_utilisateur /), ou ...
find /usr/local/share/ \*.sql
et ainsi de suite.
Exécutez ceci dans la ligne de commande:
cd / && find | grep '\.sql$'
Remplacez «/» par le répertoire que vous souhaitez rechercher.
La find
commande est capable d'accomplir la tâche sans grep (en utilisant des options supplémentaires), mais je trouve l'utilisation ci-dessus plus pratique.
Dans l'ordre, la commande ci-dessus:
cd /
)find
)| grep '\.sql$'
)
find
a déjà des capacités de filtrageJe sais que c'est un vieux post, mais je suis assez nouveau dans ce domaine et j'ai trouvé un moyen facile de trouver tous les fichiers d'une certaine extension dans un répertoire et ses sous-répertoires enfants. Eh bien, vous accédez d'abord au
parent Directory
puisfind . -name '*.sql'
et vous trouverez tous les fichiers avec l' extension .sql dans les répertoires et ses sous-répertoires.Dans mon cas, je voulais supprimer tous les fichiers .xml dans le répertoire et ses sous-répertoires, donc ce que j'ai fait de plus, c'est que j'ai ajouté remove comme ici
find . -name '*.xml' | xargs rm
J'espère que cela aide quelqu'un :)
la source
find
comprend la-delete
commande. Pas besoin d'impliquerrm
. Ou vous pouvez utiliser la-exec
commande pour l'invoquer directement sans détour par un tuyau etxargs
.S'il n'est pas installé, installez-le auparavant avec:
la source
mlocate.db
instance à jour qui n'est pas configurée prête à l'emploi dans Ubuntu (je blieve). Et pourquoi pas tout simplementlocate '/folder/path/*.sql'
?locate
a un paramètre différent de regex utilisé dansegrep
locate
correspond aux expressions globales comme/folder/path/*.sql
, et non aux expressions régulières.man locate
je comprends-r, --regexp REGEXP - Search for a basic regexp REGEXP
donc j'ai supposé que c'était une expression régulière. Quoi qu'il en soit, j'ai essayé votre "expression globale" mais ne fonctionne pas, je suis désolé--regex
n'est pas spécifié,PATTERN
s peut contenir des caractères globuleux.» ( Source )