web-dev-qa-db-fra.com

Comment rechercher des fichiers en utilisant regex dans le script shell Linux

Supposons que je souhaite rechercher des fichiers ayant python dans le nom de fichier, dans tous les sous-répertoires de linux, à partir d'un script Shell. Comment puis-je rechercher dans tous les emplacements en utilisant regex?

58
Mahakaal

Trouvez tous les fichiers .py.

find / -name '*.py'

Recherchez les fichiers dont le nom contient le mot "python".

find / -name '*python*'

Identique à ci-dessus mais insensible à la casse.

find / -iname '*python*'

Correspondance regex, plus flexible. Recherchez les fichiers .py et les fichiers avec le mot "python" dans le nom.

find / -regex '.*python.*\|.*\.py'
92
John Kugelman

Si de simples expressions rationnelles de Shell suffisent, vous pouvez utiliser find

find /linux -name "*python*"

Sinon, je dirais utiliser ack (http://betterthangrep.com/)

0
Malcolm Box