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.