Ich versuche gerade, mein Quotensystem zu reparieren. Mein Problem ist, dass ich nicht feststellen kann, ob alle Dateien in einem Verzeichnis demselben Benutzer gehören. Wenn möglich gibt es eine Möglichkeit, die verschiedenen Eigentümer von Dateien in einem Verzeichnis (rekursiv) aufzulisten.
z.B get-owners-of DIRNAME
command-line
permissions
filesystem
quota
Jack7076
quelle
quelle
Antworten:
Mit können Sie
find
den Benutzer (Eigentümer) und die Gruppe drucken und anschließend die eindeutigen Kombinationen extrahieren, zquelle
-mindepth 1
vor-printf
. Und ich würde es nichtsudo
in das Beispiel aufnehmen, wenn OP nicht in einem Kontext zu funktionieren scheint, in dem es erforderlich ist.-t:
das in diesem Zusammenhang einen Unterschied?listet die Besitzer aller Dateien auf.
Dies kann sortiert und Duplikate entfernt werden, indem es weitergeleitet wird in
sort -u
:Wie von steeldriver hervorgehoben, ist dies nicht rekursiv. Ich vermisste, dass dies gefragt wurde. Es kann rekursiv gemacht werden, indem globstar aktiviert wird:
Insgesamt ist die Antwort von steeldriver wahrscheinlich besser und sollte hier die akzeptierte Antwort sein :)
quelle
ARG_MAX
es ein Problem ist, das Sie tun könntenprintf '%s\0' **/* | xargs -0 stat -c %U
(daprintf
es ein eingebautes ist, sollte es nicht die gleiche Längenbeschränkung haben)Möglicherweise ist es effizienter, direkt nach Dateien zu suchen, die nicht dem Benutzer gehören ...
quelle
DIY-Methode über Python:
Dies durchläuft alle in der Befehlszeile aufgelisteten Dateinamen, ruft die UID des Dateieigentümers ab und ruft bei Verwendung des pwd- Moduls den Benutzernamen des Eigentümers ab. Danach werden Dateiname und Benutzername für einen schönen Ausdruck zusammengefügt und durch Doppelpunkte getrennt. Funktioniert so:
quelle