web-dev-qa-db-fra.com

Comment définir différentes autorisations pour les fichiers et les dossiers séparément?

Je veux appliquer les autorisations 644 uniquement pour tous les fichiers du répertoire actuel et les autorisations 755 uniquement pour les sous-répertoires du répertoire actuel avec chmod

2

Utilisez find:

_find ./ -type f -maxdepth 1 -exec chmod 644 {} \;
find ./ -type d -maxdepth 1 -exec chmod 755 {} \;
_
  • _-type f_: Fichiers
  • _-type d_: Répertoires
  • _-maxdepth 1_: premier niveau (pour éviter le comportement récursif par défaut)
  • _-exec_: commande à exécuter avec l'argument du résultat
  • _{}_ sera remplacé par une ligne à partir des résultats. essayer:

    _find ./ -type d -maxdepth 1 -exec echo hi{}low \;
    _

    Ceci est utile pour les commandes ayant des arguments différents comme ln:

    _ln -s {} ./otherfolder/{}
    _

    ou cp

    _cp {} ./otherfolder/
    _
  • _\;_ to to _-exec_ est la fin de la commande car vous pouvez ajouter d'autres options find après _-exec_ (pour éviter toute confusion). essayer:

    _find ./ -type d -maxdepth 1 -exec echo
    _

Référence: man find

6
user.dz