trouver . -type f -exec chmod 644 {} ;
pourquoi ne pas le travail que je suis en train de changer tous les fichiers à 644 abd tout d 755:
find . -type f -exec chmod 644 {} ;
j'obtiens: trouver: missing argument `-exec"
grâce
- Terminer avec
\;
pas avec;
seul. - ...c'est parce que tout ce qui suit
-exec
est traité comme son argument. Si vous aviez un nu -;
, il sera considéré comme un terminator pour l'ensemble de lafind
, mais vraiment vous avez besoin de mettre fin à laexec
, de sorte qu'il doit être protégé en tant que partie de l'argument chaîne. - double possible de Comment mettre en chmod pour un dossier et tous ses sous-dossiers et les fichiers dans Linux Ubuntu Terminal?
Vous devez vous connecter pour publier un commentaire.
De la tuyauterie de xargs est une sale façon de faire que ce qui peut être fait à l'intérieur de la trouver.
Vous pouvez être encore plus de contrôle avec d'autres options, telles que:
Vous pouvez faire quelques très cool de choses à trouver et vous pouvez le faire certains très dangereux aussi. Jetez un oeil à "l'homme se trouve", c'est long, mais vaut la peine d'une lecture rapide. Et, comme toujours, n'oubliez pas:
find . -type f -exec chmod 0644 {} +
qui travaille essentiellement le même que le xargs de la méthode, de la construction d'une ligne de commande. (Le \ ci-dessus est seulement pour échapper à la point-virgule.)find . -type d -exec chmod 0755 {} \; && find . -type f -exec chmod 0644 {} \;
Une bonne alternative est ceci:
et pour les répertoires:
et pour être plus explicite:
-print0
option pour trouver etxargs -0
.J'ai besoin de ce si souvent que j'ai créé une fonction dans mon
~/.bashrc
fichier:Maintenant, je peux utiliser ces raccourcis: