Je dois enlever l'indicateur de l'exécutable de tous les fichiers d'un répertoire et de sous-répertoires spécifiques. En ce moment je le fais avec un processus en 2 étapes
find /dir/ -type f -exec chmod ugo-x {} \;
find /dir/ -type d -exec chmod ugo+rx {} \;
Est-il possible de modifier la première ligne afin de pouvoir supprimer l'indicateur exec de tous les fichiers autres que des répertoires? Comme cela doit être fait assez régulièrement dans beaucoup de répertoires et de fichiers, je préférerais ne pas utiliser un script bash qui le ralentirait.
linux
find
command-line
flag
wting
la source
la source
-type f
prédicat sélectionne déjà tous les fichiers (ou de manière équivalente, tous les fichiers autres que les répertoires, car tout ce qui est un fichier ne peut pas également être un répertoire).-type f
prédicatfind
. Pour moi, le libellé de cette question suggérait fortement ce dernier sens.Réponses:
la source
!
pour l'expansion de l'historique, il est donc judicieux de la citer dans la CLI. Vous n'en aurez probablement pas besoin dans un script cependant.