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 xargsa 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
-userlocaliza 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ê.
-asinalizador devido à expansão do curinga. Para pegar dot arquivos usam o zsh dotglobopçã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 nodotglobdepois de terminar.
!parece ser opcional