Risposte:
L'utilità find (1) ha delle primarie che possono essere negate ("invertite") usando "!" operatore. Al prompt, tuttavia, è necessario sfuggire alla negazione con una barra rovesciata in quanto è un metacarattere shell. Risultato:
find . \! -user foo -print
xargs -I{} -P3 -- ${cmdhere} {}$ {cmdhere} può funzionare su ogni file in parallelo. cmdhere :: = standard unix utils; standard unix utils :: = chmod, chown, stat, ls, ...
find . ...o il piping al xargsprimo o al secondo modo?
find . ! -user foo -exec chown <owner>:<group> {} \;
Alla ricerca di file NON di proprietà di qualcuno
Altri hanno risposto alla domanda "NON di proprietà di un determinato utente" nel corpo. Eccone uno che risponde alla domanda titolare ma non è stato fornito:
$ find / -nouser
Puoi usarlo così:
$ sudo find /var/www -nouser -exec chown root:apache {} \;
E uno correlato:
$ find / -nogroup
-usertrova per utente o ID utente e !inverte il predicato. Quindi ! -user ....
Puoi usare questo:
find <dir> ! -user <username>
Usando z-shell (zsh) puoi usare
ls -laR *(^U)
o
ls -la **/*(^U)
per cercare tutti i file ricorsivamente non di tua proprietà.
-aflag a causa dell'espansione jolly. Per catturare dot file utilizzano l'zsh dotglobopzione: setopt dotglob. In una riga: (setopt dotglob; ls **/*(^U) ). Le parentesi devono essere eseguite in una subshell in modo da non dover eseguire al setopt nodotglobtermine.
!sembra essere facoltativa