Respostas:
O utilitário find (1) possui primárias que podem ser negadas ("revertidas") usando o "!" operador. No prompt, é necessário, no entanto, escapar da negação com uma barra invertida, pois é um metacaractere de concha. Resultado:
find . \! -user foo -print
xargs -I{} -P3 -- ${cmdhere} {}
que $ {cmdhere} opere em cada arquivo em paralelo. cmdhere :: = utilitários unix padrão; utils Unix Padrão :: = chmod, chown, stat, ls, ...
find . ...
tubulação ou xargs
a primeira ou a segunda maneira?
find . ! -user foo -exec chown <owner>:<group> {} \;
Procurando arquivos que NÃO pertencem a alguém
Outros responderam à pergunta "NÃO pertencente a um usuário específico" no corpo. Aqui está um que responde à pergunta do titular, mas não foi fornecido:
$ find / -nouser
Você pode usá-lo assim:
$ sudo find /var/www -nouser -exec chown root:apache {} \;
E um relacionado:
$ find / -nogroup
-user
localiza por usuário ou ID do usuário e !
inverte o predicado. Então ! -user ...
,.
Você pode usar isto:
find <dir> ! -user <username>
Usando o z-shell (zsh), você pode usar
ls -laR *(^U)
ou
ls -la **/*(^U)
para procurar todos os arquivos recursivamente não pertencentes a você.
-a
sinalizador devido à expansão do curinga. Para pegar dot arquivos usam o zsh dotglob
opção: setopt dotglob
. Em uma linha: (setopt dotglob; ls **/*(^U) )
. Os parênteses devem ser executados em um subshell, para que você não precise executar setopt nodotglob
depois de terminar.
!
parece ser opcional