J'ai utilisé cette commande sans spécifier de répertoire:
Sudo find -type d -exec chmod 755 {} \
Qu'est-ce qui aurait pu arriver? J'étais dans le dossier/var/www/html. A-t-il modifié des autorisations en dehors du répertoire/var/www/html?
Vous avez manqué un ;
ou un {} +
et peut ignorer le chemin (pour exécuter trouver à partir du répertoire courant)
Sudo find -type d -exec chmod 755 {} \;
Dans ce cas, votre recherche commence dans le répertoire courant avec des sous-répertoires. Mais vous pouvez évidemment définir le répertoire.
Répertoire actuel:
Sudo find . -type d -exec chmod 755 {} \;
Chemin absolu:
Sudo find /var/www/html -type d -exec chmod 755 {} \;
Sudo
- exécuter en tant que superutilisateur
find -type d
- recherche dans les répertoires uniquement (si vous avez besoin de fichiers, utilisez uniquement find -type f
. Si vous n'avez pas d'importance les fichiers ou les répertoires, supprimez simplement - tapez d [f] de la commande).
-exec chmod 755 {} \;
- exécuter la commande chmod 755 pour chaque objet fondé dans la commande qui init -exec param (dans ce cas trouve commande).
-exec chmod 755 {} +
- exécuter la commande chmod 755 pour un tableau complet des résultats fondés à la fois ..
Ubuntu utilise GNU find
, qui suppose le répertoire de travail actuel si vous n'en spécifiez pas. Plus précisément, il suppose .
et tous les éléments trouvés par la commande auront ./
préfixe de leur chemin lorsqu'il est passé à -exec
commande. Il ne traverserait donc que /var/www/html
; si votre répertoire de travail actuel était vraiment dans /var/www/html
rien en dehors de cela ne serait affecté. D'autres implémentations de find
peuvent nécessiter un argument de répertoire comme BSD find
par exemple.
Cependant, comme mature's answer mentionné, votre syntaxe est incomplète, donc cette commande ne s'exécutera pas. Le \
à la fin indiquerait au shell que la commande est incomplète et afficherait PS2
Invite qui est >