GNU/Linux >> Tutoriels Linux >  >> Linux

Trouver non récursif lorsqu'on lui donne un modèle sur la ligne de commande ?

Imaginez un arbre source. Il y a des fichiers xml partout.

Mais comme il y a un XYZ.xml à la racine de cet arbre, il ne trouvera pas mes fichiers xml.

find -iname *.xml

renvoie

./XYZ.xml

au lieu de

./XYZ.xml
./a/b/c/bob.xml
./b/d/top.xml

Réponse acceptée :

find -iname '*.xml'

Sinon, votre shell développe *.xml vers XYZ.xml , et la commande qui est réellement exécutée est

find -iname XYZ.xml

La raison pour laquelle cela fonctionne s'il n'y a pas de fichiers XML dans le répertoire courant est que les shells laissent généralement les caractères génériques non développés s'ils ne correspondent à rien. En général, chaque fois que vous souhaitez que les caractères génériques soient développés par un programme autre que le shell (par exemple, par find , tar , scp , etc.) vous devez les mettre entre guillemets afin que le shell n'essaie pas de les développer lui-même.


Linux
  1. 8 conseils pour la ligne de commande Linux

  2. Recherche de fichiers dans la ligne de commande (Comment faire)

  3. Comment rechercher des fichiers dans CentOS 8 sur la ligne de commande

  4. trouver :commande introuvable

  5. vim :commande introuvable

Maîtrisez la ligne de commande Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Comment trouver des fichiers sur la ligne de commande Ubuntu

Trouver la ligne de commande ?

Quelle est la commande unix pour savoir à quel fichier exécutable correspond une commande donnée ?

Comment savoir si httpd est en cours d'exécution ou non via la ligne de commande ?