À la recherche pour les fichiers qui ne sont PAS la propriété de quelqu'un
Je suis à la recherche récursive de regarder à travers les répertoires pour trouver des fichiers n'est PAS détenue par un utilisateur en particulier et je ne suis pas sûr de la façon d'écrire cela.
Vous devez vous connecter pour publier un commentaire.
Le trouver(1) utilitaire a des primaires qui peuvent être niée ("inversée") à l'aide de la "!" de l'opérateur. Sur le prompt doit cependant échapper à la négation avec une barre oblique inverse comme c'est un shell métacaractères. Résultat:
!
semble être en optionxargs ls -al
peut fournir plus d'informations que le-print
drapeauxargs -I{} -P3 -- ${cmdhere} {}
peut avoir ${cmdhere} fonctionner sur chacun des fichiers en parallèle. cmdhere ::= standard unix utils; unix standard utils ::= chmod, chown, stat, ls, ...find . ...
ou de la tuyauterie àxargs
la première ou la deuxième façon?find . ! -user foo -exec chown <owner>:<group> {} \;
-not
pour éviter de s'échapper de la!
mais apparemment il n'est pas conforme à POSIX. À partir de la page de man:-not expr Same as ! expr, but not POSIX compliant.
.find . \! -user foo -printf '%p - %u\n'
. En fait, je viens de découvrir en lisant le "trouver" commande manuelle que vous m'avez rappelé.set -H
), qui est généralement activée par défaut.D'autres ont répondu à la question "n'est PAS détenue par un utilisateur particulier" dans le corps. Voici l'une des réponses de la titulaire de la question, mais n'a pas été fournie:
Vous pouvez l'utiliser comme ceci:
Et complémentaire:
-user
trouve par l'utilisateur ou ID d'utilisateur et!
inverse le prédicat. Donc,! -user ...
.Vous pouvez utiliser ceci:
À l'aide de z-shell (zsh), vous pouvez utiliser
ou
pour rechercher tous les fichiers de manière récursive qui ne vous appartient pas.
-a
drapeau en raison de l'expansion des caractères génériques. Pour attraper dot fichiers, utilisez les zshdotglob
option:setopt dotglob
. En une seule ligne:(setopt dotglob; ls **/*(^U) )
. Les parenthèses sont à exécuter dans un shell interne est exécuté de sorte que vous n'avez pas à exécutersetopt nodotglob
après que vous avez terminé.