J'ai un bureau buntu 16.04 64 bits dans lequel j'avais précédemment installé wine
, puis que je l'ai supprimé. Maintenant, quand j'essaie d'ouvrir fichiers txt dans nautilus
, dans de nombreux cas, je reçois une boîte dailouge disant que le fichier est exécutable et si je dois l'exécuter ou l'afficher . Je suis agacé par ce comportement et je souhaite révoquer les autorisations exécuter de ces fichiers. Si quelqu'un peut me montrer comment faire cela, ce sera utile.
Merci
Pour supprimer le bit d'exécution de tous les fichiers .txt
de votre répertoire personnel et de tous ses sous-répertoires, essayez:
find "$HOME" -type f -executable -name '*.txt' -execdir chmod a-x {} +
Comment ça fonctionne:
find "$HOME"
Cela commence find
à la recherche de fichiers commençant par votre répertoire personnel et comprenant tous les sous-répertoires de manière récursive.
-type f
Ceci indique à find
de ne rechercher que les fichiers normaux, pas les répertoires.
Il est important de limiter la recherche aux fichiers normaux car, si nous supprimons le bit d'exécution d'un répertoire, ce répertoire devient inaccessible.
-executable
Ceci indique à find
de ne rechercher que les fichiers contenant le bit exécutable.
-name '*.txt'
Ceci indique à find
de ne rechercher que les fichiers dont le nom correspond au glob *.txt
.
-execdir chmod a-x {} +
Ceci indique à find
d’exécuter chmod a-x
sur tous les fichiers trouvés.
Nous utilisons -execdir
, par opposition à -exec
, car il est plus fiable si les noms des répertoires changent pendant l'exécution de cette commande.
Le +
à la fin du formulaire -execdir chmod a-x {} +
indique à find
d'exécuter moins d'instances de chmod
en plaçant si possible plusieurs fichiers sur chaque ligne de commande chmod
.
find . -name "*.txt" -exec chmod a-x {} \;
La commande find
est explicite. Il trouve les fichiers en fonction des arguments donnés. Utilisation: find location comparison-criteria search term
find . -name "*.txt" -exec chmod a-x {} \;
Ici. signifie répertoire racine, -name "*.txt"
signifie trouver tous les fichiers qui incluent ".txt" dans leurs noms. -exec chmod a-x {} \;
signifie exécuter la commande chmod
sur tous les fichiers correspondants.