it-swarm.com.de

So entfernen Sie die Ausführungsberechtigung von allen txt-Dateien in Ubuntu

Ich habe einen buntu 16.04 64 bit Desktop, auf dem ich wine installiert und später entfernt habe. Wenn ich jetzt versuche, txt-Dateien in nautilus zu öffnen, erhalte ich in vielen Fällen ein Dailouge-Feld mit der Aufschrift Datei ist ausführbar und ob soll ich ausführen oder anzeigen es. Ich ärgere mich über dieses Verhalten und möchte execute die Berechtigungen für diese Dateien widerrufen. Wenn mir jemand zeigen kann, wie das geht, ist das hilfreich.

Vielen Dank

5
nlern

Versuchen Sie Folgendes, um das Ausführungsbit aus allen .txt -Dateien in Ihrem Ausgangsverzeichnis und allen seinen Unterverzeichnissen zu entfernen:

find "$HOME" -type f -executable -name '*.txt' -execdir chmod a-x {} +

Wie es funktioniert:

  • find "$HOME"

    Dadurch wird find nach Dateien gesucht, die mit Ihrem Ausgangsverzeichnis beginnen und rekursiv alle Unterverzeichnisse einschließen

  • -type f

    Dies weist find an, nur nach regulären Dateien zu suchen, nicht nach Verzeichnissen.

    Es ist wichtig, die Suche auf reguläre Dateien zu beschränken, da dieses Verzeichnis unzugänglich wird, wenn das Ausführungsbit aus einem Verzeichnis entfernt wird.

  • -executable

    Dies weist find an, nur nach Dateien zu suchen, für die das ausführbare Bit gesetzt ist.

  • -name '*.txt'

    Dies weist find an, nur nach Dateien zu suchen, deren Namen mit dem glob *.txt übereinstimmen.

  • -execdir chmod a-x {} +

    Dies weist find an, chmod a-x für alle gefundenen Dateien auszuführen.

    Wir verwenden -execdir im Gegensatz zu -exec, da es zuverlässiger ist, wenn sich die Namen von Verzeichnissen ändern, während dieser Befehl ausgeführt wird.

    Der + am Ende des Formulars -execdir chmod a-x {} + weist find an, weniger Instanzen von chmod auszuführen, indem möglichst viele Dateien in jede chmod Befehlszeile gestellt werden.

6
John1024
find . -name "*.txt" -exec chmod a-x {} \;

find Befehl ist selbsterklärend. Es findet die Dateien anhand der angegebenen Argumente. Verbrauch: find location comparison-criteria search term

find . -name "*.txt" -exec chmod a-x {} \; Hier. bedeutet root-Verzeichnis, -name "*.txt" bedeutet, alle Dateien zu finden, deren Namen ".txt" enthalten. -exec chmod a-x {} \; bedeutet, dass der Befehl chmod für alle übereinstimmenden Dateien ausgeführt wird.

0
Mustafa Yılmaz