Unterordner mit dem Eigentümer und der Gruppe des aktuellen Ordners anzeigen

8

In einem Bash-Skript möchte ich alle Unterordner eines beliebigen Ordners rekursiv mit den Benutzer- und Gruppenbesitzern dieses bestimmten Ordners zusammenfassen.

Mein Ansatz ist so etwas wie mit stat -c "%U %G" .

Aber das gibt nur ein Muster von zurück username[whitespace]groupname

Natürlich könnte ich einfach verschiedene Tools ausprobieren, um das Leerzeichen durch ein zu ersetzen, :aber ich würde es vorziehen, eine "eingebaute" Methode zu verwenden, wenn es eine gibt, um nur den aktuellen Besitz auf die Unterordner anzuwenden.

Jankapunkt
quelle

Antworten:

6

chownWie chmodkann eine Referenz verwenden:

chown [OPTION]... --reference=RFILE FILE...

Change the owner and/or group of each FILE to OWNER and/or GROUP.  With
--reference, change the owner and group of each FILE to those of RFILE.

Damit:

chown --reference=/some/folder -R /some/folder
muru
quelle
8

Sie müssen die Ausgabe nicht analysieren, um das Leerzeichen zu entfernen - das haben Sie in Ihrem Befehl hinzugefügt! Sie können es einfach nach Belieben formatieren (mit chownder Doppelpunktsyntax):

$ stat -c "%U:%G" .
zanna:unicorns

Übergeben Sie das einfach chownmit Befehlsersetzung an:

chown -R $(stat -c "%U:%G" .) .
Zanna
quelle
Manchmal bin ich einfach blind für das Offensichtliche. Vielen Dank!
Jankapunkt