Kann mich jemand auf Code oder ein Tutorial zum Schreiben eines Shell-Skripts verweisen, das rekursiv eine gesamte Verzeichnisstruktur durchlaufen kann (beginnend mit dem aktuellen Arbeitsverzeichnis oder mit einem erforderlichen Argument, wo ich anfangen soll) und kann:
- Bestimmen Sie, ob ein Element ein Verzeichnis ist und ob es
chmod 755
... oder ... - Bestimmen Sie, ob ein Element eine Datei (kein Verzeichnis) ist, und zwar
chmod 644
.
Ich suche nach Kompatibilität mit Ubuntu, Debian, RHEL-Based usw., daher markiere ich dies nicht mit einer bestimmten Sprache. Ich würde das in Bash mögen, aber wenn Sie ein ZSH-Skript haben, wird das auch funktionieren.
bash
command-line
shell-script
zsh
Thomas Ward
quelle
quelle
cd /path/to/dir/
es ändert das Arbeitsverzeichnis, so dass ich es als argumentbasiertes Kommando / Skript verwenden kann?cd
ändert das Arbeitsverzeichnis in Skripten. Wenn Ihnen das noch nie passiert ist, ist das ziemlich seltsam. Vielleicht möchten Sie eine neue Frage dazu stellen ... mit Details.-o
anstelle von-or
(ein GNUism, das gilt auch für-and
).Die einfache Antwort:
+X
(Beachten Sie das Großbuchstaben X) bedeutet, die Ausführungsberechtigung zu erteilen, wenn die Ausführungsberechtigung für einen Benutzer bereits vorhanden war. Wenn Sie über einen Verzeichnisbaum verfügen, der über die richtigen Berechtigungen für den Eigentümer verfügt, und diesen für alle zugänglich machen möchten, ist dies der richtige Befehl. Verzeichnisse werden nicht nur weltweit ausführbar, sondern auch ausführbare Dateien.Wenn Sie auch die Schreibberechtigungen nur für den Eigentümer zurücksetzen und alle setuid / setgid-Bits löschen möchten, machen Sie das
Der obligatorische zsh Two-Liner, wenn Sie keine Datei ausführbar machen möchten:
quelle