it-swarm.com.de

Wie ändere ich die globalen .txt-Berechtigungen?

enter image description here Ich versuche, .txt Dateien in Java zu lesen und zu schreiben, kann dies jedoch nicht, da alle Berechtigungen schreibgeschützt sind. Ich könnte einfach auf die Eigenschaften jeder Datei einzeln klicken und sie ändern, aber ich habe viele Textdateien, und das ist unpraktisch. Gibt es eine Möglichkeit, die globalen Berechtigungen für alle .txt -Dateien zum Lesen und Schreiben zu ändern?

Sie würden denken, dass es mit so viel Hilfe funktionieren würde, aber trotz aller Zannas-Methoden kann ich die Dateien in Java nicht öffnen und die Berechtigungen scheinen sich nicht zu ändern. enter image description here

4

Wenn die Dateien die Erweiterung .txt haben, können Sie Folgendes verwenden:

find ~/Desktop/Research -type f -iname '*.txt' -exec chmod u+w '{}' +

find ist standardmäßig rekursiv und wird auch in alle Unterverzeichnisse verschoben.

Wenn die Dateien vom Typ sind, aber keine Erweiterungen haben, können Sie so etwas tun

for i in ~/Desktop/Research/*; do if [[ $(file "$i" | grep text) ]]; then echo chmod u+w "$i"; fi; done

In diesem Befehl dient echo nur zum Testen, um anzuzeigen, welche Berechtigungsänderungen angewendet werden. Entfernen Sie echo nach dem Testen, um die Berechtigungen tatsächlich zu ändern. Dieses Mal wird keine Ausgabe erfolgen.

Wenn Sie möchten, dass dieser Befehl in Unterverzeichnissen ausgeführt wird, können Sie dies tun:

shopt -s globstar; for i in ~/Desktop/Research/**; do if [[ $(file "$i" | grep text) ]]; then echo chmod u+w "$i"; fi; done

Ich habe chmod u+w verwendet, mit dem nur der Eigentümer eine Schreibberechtigung erhält. Passen Sie dies nach Ihren Wünschen an (versuchen Sie es zuerst und falls Sie immer noch Probleme haben, ersetzen Sie es durch chmod o+w oder chmod 666, aber achten Sie darauf, dass Sie nicht jedem die Schreibberechtigung erteilen!) Systemdateien.

5
Zanna

Sie können den Befehl verwenden

find /PATH/TO/FOLDER -iname '*.txt'

rekursives Auflisten aller Dateinamen, die mit dem Muster *.txt übereinstimmen (d. h. alles, was mit .txt endet), innerhalb des Verzeichnisses /PATH/TO/FOLDER.

Dies ist nützlich, um zu überprüfen, welche Dateien betroffen sind, bevor Sie Änderungen vornehmen. Wenn Sie auch gleichzeitig den Eigentümer und die Berechtigungen dieser Dateien anzeigen möchten, gehen Sie wie folgt vor:

find /PATH/TO/FOLDER -iname '*.txt' -exec stat -c '%A %U %n' '{}' \;

Kommen wir nun zu dem echten Befehl, der die Berechtigungen tatsächlich ändert. Im Folgenden können nur die Berechtigungen der Dateien geändert werden, die Ihrem aktuellen Benutzer gehören, und es werden nur Schreibberechtigungen für den Eigentümer hinzugefügt. Ich empfehle, es so zu belassen, da Sie sonst die Sicherheit Ihres Systems leicht aus Versehen schwächen.

find /PATH/TO/FOLDER -iname '*.txt' -exec chmod u+w '{}' \;

Natürlich müssen Sie /PATH/TO/FOLDER auch durch einen gültigen Speicherort in Ihrem Dateisystem ersetzen. Führen Sie diesen Befehl jedoch nur für Ihre eigenen Datendateien und niemals für Systemverzeichnisse aus, insbesondere nicht für Daten, die dem Root-Benutzer gehören, und insbesondere nicht für Daten mit Sudo, es sei denn, Sie möchten riskieren, Ihr System zu beschädigen und es instabil und weniger sicher zu machen.

2
Byte Commander