Hallo Cruz,
Und jetzt sollen der owner und die group alle Dateien und Verzeichnisse beschreiben dürfen, also muss ich allen Dateien 664 und allen Verzeichnissen 775 geben. Wie kriege ich das mit nur 2 Kommandos hin?
find /neu -type d -print0 | xargs -0 chmod 0775
find /neu -type f -print0 | xargs -0 chmod 0664
Zur Erläuterung: find sucht im Dateisystem nach Dateien. Es erwartet sowohl einen Parameter, der sagt, wo die Suche losgehen soll, als auch weitere Parameter, die das Verhalten bestimmen. Im einzelnen:
find /neu -type d -print0
/neu: Dort soll die Suche anfangen
-type d: Es soll nach Verzeichnissen gesucht werden
-print0: find soll die Ergebnisse mit 0-bytes getrennt ausgeben
Die Ausgabe von find wird bei obigen Befehlen per Pipe (|) an xargs weitergeleitet. xargs wandelt die Eingabe in Parameter des Befehls, der dahinter steht. Ein
echo test tester | xargs ls
ist folglich identisch mit
ls test tester
Folglich macht der Befehl
xargs -0 chmod 0775
folgendes:
-0: Sagt xargs, dass die Eingabe mit 0-bytes getrennt daherkommt (die Trennung mit 0-Bytes ist deswegen praktisch, weil man sich dann irgendwelche Leerzeichensonderbehandlungskramsereien sparen kann)
chmod 0775: Der Befehl, an den die Eingabe als Parameter angehängt werden sollen.
Viele Grüße,
Christian
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup