Estoy buscando mirar recursivamente los directorios para encontrar archivos que NO sean propiedad de un usuario en particular y no estoy seguro de cómo escribir esto.
182
La utilidad find (1) tiene primarios que se pueden negar ("revertir") usando el "!" operador. Sin embargo, en la solicitud, uno debe escapar de la negación con una barra invertida, ya que es un metacarácter de shell. Resultado:
find . \! -user foo -print
!
parece ser opcionalxargs -I{} -P3 -- ${cmdhere} {}
puede hacer que $ {cmdhere} opere en cada archivo en paralelo. cmdhere :: = utilidades estándar de Unix; utilidades estándar de Unix :: = chmod, chown, stat, ls, ...find . ...
tubería axargs
la primera o segunda forma?find . ! -user foo -exec chown <owner>:<group> {} \;
Otros han respondido la pregunta "NO es propiedad de un usuario en particular" en el cuerpo. Aquí hay una que responde a la pregunta titular pero no se ha proporcionado:
Puedes usarlo así:
Y uno relacionado:
fuente
-user
busca por usuario o ID de usuario e!
invierte el predicado. Por lo tanto,! -user ...
.fuente
Puedes usar esto:
fuente
Usando z-shell (zsh) puedes usar
o
para buscar todos los archivos de forma recursiva que no sean de su propiedad.
fuente
-a
bandera debido a la expansión de comodines. Para la captura de puntos archivos utilizan el zshdotglob
opción:setopt dotglob
. En una línea:(setopt dotglob; ls **/*(^U) )
. Los paréntesis deben ejecutarse en una subshell para que no tenga que ejecutarse unasetopt nodotglob
vez que haya terminado.