qu'est-ce qu'un caractère générique pour sélectionner tous les répertoires d'un répertoire


13

je veux mettre le bit collant pour tous les répertoires dans un répertoire à l'exclusion des fichiers. existe-t-il un joker pour le faire?

#sudo chmod g+s /var/www/<WILD_CARD_FOR_ALL_DIRECTORIES>

Réponses:


24

Utilisez */pour faire correspondre uniquement les répertoires.

chmod g+s /var/www/*/

Pour faire correspondre tous les répertoires et sous-répertoires utilisés **/*/(à condition que vous les ayez globstaractivés dans bash):

shopt -s globstar
chmod g+s /var/www/**/*/

2
Fonctionne bien, mais s'arrête dès que la longueur de la ligne de commande étendue dépasse la limite de longueur de ligne de commande. -> cyberciti.biz/faq/argument-list-too-long-error-solution
— Bonsi Scott

1
oui, j'en suis bien conscient. Cependant, le PO a demandé un "caractère générique".
— Dogbane

Ouais! J'ai demandé un caractère générique, merci.
— Necktwi

je sais qu'il a demandé une solution générique. J'ai seulement souligné que cela échouerait dans certaines circonstances. Autre que cela, pas de critique à voir ici (j'ai commenté mais j'ai voté, car c'est une solution de travail pour la plupart des cas) ^^
— Bonsi Scott

13

vous pouvez utiliser find, voir l'exemple ci-dessous

find /var/www/ -type d -exec chmod g+s {} \;

3
C'est bien, mais pas un caractère générique, mais - mais il a l'avantage de ne pas échouer en raison de nombreux répertoires
— Bonsi Scott

Notez que ceci est récursif par défaut. Si vous souhaitez uniquement que votre commande soit appliquée au niveau supérieur, vous pouvez utiliser l' -maxdepth findargument.
— Kris Harper

0

Ce n'est PAS un caractère générique, donc je m'excuse pour une non-réponse, cependant ...
ls -al |grep ^d | awk '{print$NF}'listera tous les répertoires dans le répertoire courant, c'est à vous de décider si vous souhaitez les traiter .et / ..ou les supprimer.

echo $(ls -al |grep ^d | awk '{print$NF}') ne le fait se comporter comme un caractère générique


Cela se cassera si vos fichiers ont des espaces blancs de début ou de fin, ou des retours à la ligne.
— Chris Down
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.