Sur un serveur Linux, je dois trouver tous les fichiers avec une certaine extension de fichier dans le répertoire courant et tous les sous-répertoires.
Auparavant, j'utilisais toujours la commande suivante:
find . -type f | grep -i *.php
Cependant, il ne trouve pas les fichiers cachés, par exemple . Myhiddenphpfile.php . Ce qui suit trouve les fichiers php cachés, mais pas ceux non cachés:
find . -type f | grep -i \.*.php
Comment puis-je trouver les fichiers php cachés et non cachés dans la même commande?
...
find . -type f -name '*.php'
Il est préférable d'utiliser iname (insensible à la casse).
J'utilise cette commande find pour rechercher des fichiers cachés:
find /path -type f -iname ".*" -ls
Extrait de: http://www.sysadmit.com/2016/03/linux-ver-archivos-ocultos.html
Le problème est grep, pas la recherche (essayez simplement find . -type f
pour voir ce que je veux dire).
Si vous ne citez pas le *
alors le Shell le développera - avant que grep ne voie même ses arguments de ligne de commande; comme le Shell ne trouve pas les fichiers cachés par défaut, vous aurez des problèmes.
La raison pour laquelle niquement recherche le fichier caché est que le Shell a déjà développé le *
et donc grep ne correspond qu'à ce fichier.