Je cherche à parcourir de manière récursive les répertoires pour trouver des fichiers qui ne sont PAS détenus par un utilisateur particulier et je ne sais pas comment écrire cela.
182
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
!
semble être facultatifxargs -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 dexargs
la première ou de la deuxième façon?find . ! -user foo -exec chown <owner>:<group> {} \;
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:
Vous pouvez l'utiliser comme ceci:
Et un lié:
la source
-user
recherche par utilisateur ou ID utilisateur et!
inverse le prédicat. Ainsi,! -user ...
.la source
Vous pouvez utiliser ceci:
la source
En utilisant z-shell (zsh), vous pouvez utiliser
ou
pour rechercher de manière récursive tous les fichiers qui ne vous appartiennent pas.
la source
-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écutersetopt nodotglob
après avoir terminé.