web-dev-qa-db-fra.com

Comment supprimer l'autorisation d'exécution de tous les fichiers txt dans Ubuntu

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

5
nlern

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.

6
John1024
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.

0
Mustafa Yılmaz