Wie kann man erreichen, dass sich Chown nur auf Ordner auswirkt, nicht aber auf Dateien?

Wie kann man erreichen, dass sich Chown nur auf Ordner auswirkt, nicht aber auf Dateien?

Ich muss eine Struktur aus Unterordnern chmodden, die natürlich weitere Unterordner und auch Dateien enthalten.

Jetzt muss ich die Zugriffsrechte (Besitzer:Gruppe, derzeit keine ACL) auf diese komplette Struktur auf die gleiche Weise ändern. Nur möchte ich 775 für Ordner, aber 664 für Dateien. Wie kann ich das erreichen? man chownscheint keine Lösung zu bieten, also dachte ich, eine Pipe findkönnte chowndas machen. Meine Kenntnisse über Pipes sind ziemlich grundlegend. Ich glaube, man gibt einen Befehl ein und sendet die Ausgabe dieses Befehls über den zweiten Befehl.

find -type d | chmod -R 775 *

ist meine Vermutung, respektiert aber nicht die Ausgabe meines findBefehls. Wahrscheinlich überschreibt das '*' im chown-Befehl die Ausgabe von findetwas

irgendwelche Ideen, wie ich das zu meinen Gunsten optimieren kann?

Antwort1

NichtVerwenden Sie das -RFlag mit chmod, wodurch es rekursiv wird (anwendbar auf alle Ordner und Dateien, die in den Argumenten enthalten sind). Verwenden Sie:

find . -type d -exec chmod 775 {} +

Antwort2

Update: Ich habe es falsch gelesen, siehe @murus verwendet kein -R. Das könnte funktionieren:

chmod 775 $(find -type d)

Es wird genanntBefehlsersetzung

verwandte Informationen