J'essaie actuellement de réparer mon système de quotas. Mon problème est que je ne peux pas déterminer si tous les fichiers d'un répertoire appartiennent au même utilisateur. Si possible, existe-t-il un moyen de répertorier les différents propriétaires de fichiers dans un répertoire (récursivement).
par exemple get-owners-of DIRNAME
command-line
permissions
filesystem
quota
Jack7076
la source
la source
Réponses:
Vous pouvez utiliser
find
pour imprimer l'utilisateur (propriétaire) et le groupe, puis extraire les combinaisons uniq, par exemplela source
-mindepth 1
avant-printf
. Et je n'inclurais passudo
dans l'exemple quand OP ne semble pas fonctionner dans un contexte où il est requis.-t:
fait-il une différence dans ce contexte?répertorie les propriétaires de tous les fichiers.
Cela peut être trié et les doublons supprimés en le canalisant dans
sort -u
:Comme l'a souligné Steeldriver, ce n'est pas récursif. J'ai manqué que cela ait été demandé. Il peut être récursif en activant globstar:
Dans l'ensemble, la réponse de Steeldriver est probablement meilleure et devrait être la réponse acceptée ici :)
la source
ARG_MAX
vous pouvez faire un problèmeprintf '%s\0' **/* | xargs -0 stat -c %U
(puisqu'ilprintf
s'agit d'un module intégré, il ne devrait pas avoir la même limitation de longueur)Vous trouverez peut-être plus efficace de rechercher directement les fichiers n'appartenant pas à l'utilisateur ...
la source
Méthode de bricolage via Python:
Cela parcourt tous les noms de fichiers répertoriés sur la ligne de commande, obtient l'UID du propriétaire du fichier et l'utilisation du module pwd obtient le nom d'utilisateur du propriétaire. Après cela, le nom de fichier et le nom d'utilisateur ont été joints pour une jolie impression et séparés par deux points. Fonctionne ainsi:
la source