Sous Linux, nous pouvons utiliser la commande suivante pour modifier le mode d'autorisation des fichiers et des dossiers de manière récursive.
trouver "/ Users/Test/Desktop/PATH" -exec * chmod 777 {} \;
comment pourrais-je faire la même chose pour mac car j'obtiens l'erreur suivante de manière répétitive.
find: TEST_FILE: Aucun fichier ou répertoire de ce type
Le problème est que le *
est interprété par votre shell et se développe dans un fichier nommé TEST_FILE
qui se trouve dans votre répertoire de travail actuel, vous dites donc à find
d'exécuter la commande nommée TEST_FILE
qui n'existe pas. Je ne suis pas sûr de ce que vous essayez d'accomplir avec ce *
, vous devez simplement le supprimer.
De plus, vous devez utiliser l'idiome -exec program '{}' \+
au lieu de -exec program '{}' \;
pour que find
ne crée pas de nouveau processus pour chaque fichier. Avec ;
, un nouveau processus est forké pour chaque fichier, alors qu'avec +
, il ne bifurque qu'un seul processus et passe tous les fichiers sur une seule ligne de commande, ce qui pour des programmes simples comme chmod
est beaucoup plus efficace.
Enfin, chmod
peut effectuer des modifications récursives par lui-même avec le -R
flag, donc à moins que vous n'ayez besoin de rechercher des fichiers spécifiques, procédez comme suit:
chmod -R 777 /Users/Test/Desktop/PATH
Vous pouvez simplement utiliser l'indicateur -R (récursif).
chmod -R 777 /Users/Test/Desktop/PATH
En utilisant CHMOD oui:
Pour le fichier récursif:
chmod -R 777 foldername or pathname
Pour non récursif:
chmod 777 foldername or pathname
Je n'ai pas de machine Mac OSx pour tester cela mais en bash sous Linux j'utilise quelque chose comme ceci pour chmod uniquement les répertoires:
find . -type d -exec chmod 755 {} \+
mais cela fait aussi la même chose:
chmod 755 `find . -type d`
et cela aussi:
chmod 755 $(find . -type d)
Les deux derniers utilisent différentes formes de sous-commandes. Le premier utilise des backticks (plus anciens et amortis) et l'autre la syntaxe de la sous-commande $ ().
Je pense donc que dans votre cas, ce qui suit fera ce que vous voulez.
chmod 777 $(find "/Users/Test/Desktop/PATH")