Claro, con el comando de búsqueda casi mágico. La forma más sencilla es así:
find . -user 501 -exec chown Julian {} +
El comando "buscar" se explica en la página del manual, y en una serie de tutoriales y procedimientos como este , en pocas palabras, la idea corta es "encontrar todo lo que coincida con estos criterios y hacer este comando con cada uno".
-
.
significa buscar (y debajo) el directorio de trabajo actual.
-
-user 501
significa que solo se encuentran los archivos propiedad del usuario 501.
- Tenga en cuenta que esto es específico de BSD; en algunos otros sistemas POSIX, el usuario toma un nombre de usuario y un indicador uid separado toma las ID de usuario numéricas.
-
-exec … {} +
significa ejecutar lo que esté en el "..." (en este caso, "chown Julian") repetidamente, pasándole tantos archivos como sea posible.
- Entonces, si hay 5000 archivos, puede terminar llamando a Chown 4 veces (en el primer 1203, luego en el siguiente 1888, y así sucesivamente).
- Tenga en cuenta que esta es una extensión BSD (aunque GNU tiene una extensión similar); hay un equivalente portátil con
;
en lugar de +
, pero esto llamará a chown una vez para cada archivo, lo que generalmente tomará mucho más tiempo. (La solución estándar es usar -print0 y canalizar el resultado a xargs -0. Pero, dado que estás haciendo esto en un sistema BSD, no tienes que hacerlo).
- Tenga en cuenta que si está escribiendo esto en el shell, algunos shells requerirán que escape de las llaves, pero bash (el shell predeterminado en las Mac modernas) no.