Commande pour effectuer un chmod récursif pour rendre tous les fichiers .sh dans un répertoire exécutable?

13

Essayer d'effectuer un chmod récursif sur tous les fichiers .sh d'un répertoire pour les rendre exécutables

Arunava
la source
Regardez findet peut-être xargs.
fkraiem

Réponses:

25

Pour rendre cela possible, vous pouvez utiliser la findcommande et rechercher tous les fichiers avec une .shextension, puis exécuter la chmodcommande sur chacun trouvé:

find /directory/of/interest/ -type f -iname "*.sh" -exec chmod +x {} \;

Information:

  1. -type f: Fichiers normaux uniquement (sauter les répertoires, liens symboliques, canaux et sockets nommés et les fichiers spéciaux trouvés dans / dev)
  2. -iname: Ignorer la casse dans le nom
  3. "*.sh": Globbing, indiquant à la findcommande de rechercher des fichiers avec l'extension ".sh"
  4. -exec chmod +x {}: Ceci indique à la findcommande d'exécuter une chmodcommande sur chaque fichier trouvé. Rendre chaque exécutable
  5. \;: Indication de fin de commande
George Udosen
la source