parent nodes: Buscar | UnixLinuxCygwinApuntes
xargs
xargs construye listas de argumentos, y llama a otra utilidad a la que le pasa la lista
La utilidad por defecto a la que invoca es echo:
echo 1 2 3 4 | xargs
$ 1 2 3 4
-n indica el número máximo de argumentos a usar en cada llamada echo 1 2 3 4 | xargs -n 2
$ 1 2
$ 3 4
Si necesitas dos o más argumentos debes usar {} o un nombre de variable $ find . -name "*.bak" -print0 | xargs -0 -I {} mv {} ~/old.files
Busca todos los ficheros *.bak,
imprime su nombre por pantalla (pero no lo hará) y los hace acabar en NUL (-print0)
El -0 (guion cero) de xargs es necesario para los archivos que no acaban en letra, que tienen espacios o similar (si no se pone el -print0 y el -0 petará)
-I {} (input) es la declaración de la variable de entrada
que es la lista de argumentos creada por el método anterior (el find)
luego viene el comando mv (mover)
{} en segundo lugar indica la variable de la entrada (aquí es donde se usa)
y el segundo argumento de mv es el directorio de destino.
En lugar de {} se puede poner otro nombre para que quede más claro: $ find . -name "*.bak" -print0 | xargs -0 -I filesToMove mv filesToMove ~/old.files