Ich möchte chmod
viele Dateien und Verzeichnisse. Als x
Liste für Verzeichnisse angeben und für normale Dateien ausführen möchte ich mich rw
für Dateien und rwx
für Verzeichnisse bewerben . Ist es nur mit dem chmod
Befehl möglich?
Wenn nicht, was ist der bequemste Weg?
Dies chmod -R 770
ist keine Möglichkeit, da ich nicht möchte, dass die regulären Dateien ausführbar werden.
linux
permissions
file-management
Gelöscht
quelle
quelle
Antworten:
Ich mache das gelegentlich mit einem einzigen
find
Befehl. Hässlich aber effektiv.quelle
find . -type d -exec chmod -vc 755 "{}" \;
(auch-vc
für ein paar Rückmeldungen). (Und vielleicht, um das zu verdeutlichen, fügen Sie auch die beiden Standalone-Befehle zur Antwort hinzu?)Verwenden Sie die X-Berechtigung auf der Manpage:
Also mache folgendes:
Dadurch wird das Ausführungsbit aus allen Dateien und Verzeichnissen entfernt, gefolgt vom Hinzufügen von Lese- und Schreibberechtigungen für alle Dateien und von Ausführungsberechtigungen nur für Verzeichnisse. (Bei normalen Dateien ist das Ausführungsbit vom ersten Schritt an nicht mehr aktiviert.)
quelle
chmod -R a-x [directory]
gefolgt vonchmod -R a+rwX [directory]
?a-x
, ist das Verzeichnis nicht zugänglich. Tatsächlich schlägt chmod mit verweigerter Berechtigung fehl und entfernt kein ausführbares Bit aus den Dateien im Verzeichnis. Gibt es eine Möglichkeit, dies zu tun, ohne root zu sein?Sie können auch
find
zusammen mitxargs
:wo
-type
Spezifiziert d irectory oder f ile.quelle
xargs
ist intelligent genug, um lange Befehlszeilen für mehrere Ausführungen zu unterbrechen. Konsultieren Sie Ihre xargs-Manpage und achten Sie darauf, dies zu überprüfenxargs --show-limits
.