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 axargsla 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
-userbusca 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
-abandera debido a la expansión de comodines. Para la captura de puntos archivos utilizan el zshdotglobopció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 nodotglobvez que haya terminado.