Réponses:
L'utilitaire find (1) a des primaires qui peuvent être annulées ("inversées") en utilisant le "!" opérateur. A l'invite, il faut cependant échapper à la négation avec une barre oblique inverse car il s'agit d'un métacaractère shell. Résultat:
find . \! -user foo -print
xargs -I{} -P3 -- ${cmdhere} {}
peut faire fonctionner $ {cmdhere} sur chaque fichier en parallèle. cmdhere :: = utils standard unix; utils standard unix :: = chmod, chown, stat, ls, ...
find . ...
ou la tuyauterie de xargs
la première ou de la deuxième façon?
find . ! -user foo -exec chown <owner>:<group> {} \;
Recherche de fichiers qui n'appartiennent à personne
D'autres ont répondu à la question "N'appartenant pas à un utilisateur particulier" dans le corps. En voici une qui répond à la question titulaire mais qui n'a pas été fournie:
$ find / -nouser
Vous pouvez l'utiliser comme ceci:
$ sudo find /var/www -nouser -exec chown root:apache {} \;
Et un lié:
$ find / -nogroup
-user
recherche par utilisateur ou ID utilisateur et !
inverse le prédicat. Ainsi, ! -user ...
.
Vous pouvez utiliser ceci:
find <dir> ! -user <username>
En utilisant z-shell (zsh), vous pouvez utiliser
ls -laR *(^U)
ou
ls -la **/*(^U)
pour rechercher de manière récursive tous les fichiers qui ne vous appartiennent pas.
-a
drapeau à cause de l'expansion des caractères génériques. Pour attraper les fichiers points utilisent zsh l' dotglob
option: setopt dotglob
. En une ligne: (setopt dotglob; ls **/*(^U) )
. Les parenthèses doivent être exécutées dans un sous-shell afin que vous n'ayez pas à exécuter setopt nodotglob
après avoir terminé.
!
semble être facultatif