Bash: ¿Cómo chown de dos extensiones de archivo en una línea?

2

¿Cómo puedo combinar estas dos líneas en una línea?

chown abc:abc *.sh

chown abc:abc *.txt

Cambiar la propiedad de dos extensiones de archivo en un forro.

Oh Chin Boon
fuente

Respuestas:

6

Me gusta esto:

chown abc:abc *.txt *.sh

O si realmente quieres ser elegante:

chown abc:abc *.{txt,sh}
Chris Eberle
fuente
2
+1, aunque "fantasía" sería algo así como find . \( -name '*.txt' -or -name '*.sh' \) -maxdepth 0 -print0 | xargs -0 chown abc:abc {} ';' :-)
1
@paxdiablo: no, estás confundiendo la fantasía con el demente (bueno, sí, soy culpable de usar abominaciones así, pero estoy demente, así que está bien).
Chris Eberle
Tenga en cuenta que la sintaxis de la llave no es portátil al shell Bourne básico.
tripleee
Me doy cuenta de que podría ser a propósito, pero la versión de find + xargs es demasiado complicada. En particular, xargs -r0 chown abc:abc Al final es bastante suficiente.
tripleee
@triplee: ¿qué hace -r en xargs? Los xargs de Darwin no tienen esa opción ...
w00t