12 ejemplos prácticos del comando Xargs de Linux para principiantes


Xargs es un gran comando que lee flujos de datos de la entrada estándar, luego genera y ejecuta líneas de comando; lo que significa que puede tomar la salida de un comando y pasarlo como argumento de otro comando. Si no se especifica ningún comando, xargs ejecuta echo de forma predeterminada. También puede indicarle que lea datos de un archivo en lugar de stdin.

Hay varias formas en las que xargs es útil en el uso diario de la línea de comandos. En este artículo, explicaremos 12 ejemplos prácticos de comandos xargs de Linux para principiantes.

1. El primer ejemplo muestra cómo encontrar todas las imágenes .png y archivarlas usando la utilidad tar de la siguiente manera.

Aquí, el comando de acción -print0 habilita la impresión de la ruta completa del archivo en la salida estándar, seguida de un carácter nulo y el indicador -0 xargs trata efectivamente con el espacio en los nombres de archivo.

$ find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. También puede convertir la salida muti-line del comando ls en una sola línea usando xargs de la siguiente manera.

$ ls -1 Pictures/tecmint/
$ ls -1 Pictures/tecmint/ | xargs

3. Para generar una lista compacta de todas las cuentas de usuario de Linux en el sistema, use el siguiente comando.

$ cut -d: -f1 < /etc/passwd | sort | xargs

4. Suponiendo que tiene una lista de archivos y desea saber el número de líneas/palabras/caracteres en cada archivo de la lista, puede usar el comando ls y xargs para este propósito de la siguiente manera.

$ ls *upload* | xargs wc

5. Xarags también le permite buscar y eliminar un directorio de forma recursiva, por ejemplo, el siguiente comando eliminará DomTerm de forma recursiva en el directorio Descargas.

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. De manera similar al comando anterior, también puede buscar todos los archivos denominados net_stats en el directorio actual y eliminarlos.

$ find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. A continuación, utilice xargs para copiar un archivo en varios directorios a la vez; en este ejemplo estamos intentando copiar el archivo.

$ echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. También puede usar los comandos de cambio de nombre juntos para cambiar el nombre de todos los archivos o subdirectorios en un directorio en particular a minúsculas de la siguiente manera.

$ find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. Aquí hay otro ejemplo de uso útil para xargs, muestra cómo eliminar todos los archivos dentro de un directorio excepto uno o algunos archivos con una extensión determinada.

$ find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. Como se mencionó anteriormente, puede indicarle a xargs que lea elementos de un archivo en lugar de la entrada estándar usando el indicador -a como se muestra.

$ xargs -a rss_links.txt

11. Puede habilitar la verbosidad usando el indicador -t , que le dice a xargs que imprima la línea de comando en la salida de error estándar antes de ejecutarla.

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. Por defecto, xargs termina/delimita elementos usando espacios en blanco, puede usar la marca -d para establecer el delimitador que puede ser un solo carácter, un carácter de escape de estilo C como , o un código de escape octal o hexadecimal.

Además, también puede preguntarle al usuario si debe ejecutar cada línea de comando y leer una línea desde la terminal, usando el indicador -p como se muestra (simplemente escriba y para sí o n para no).

$ echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

Para obtener más información, lea la página de manual de xargs.

$ man xargs 

¡Eso es todo por ahora! Xargs es una poderosa utilidad para construir una línea de comando; puede ayudarlo a pasar la salida de un comando como argumento de otro comando para su procesamiento. En este artículo, hemos explicado 12 ejemplos prácticos de comandos xargs para principiantes. Comparta sus pensamientos o preguntas con nosotros a través del formulario de comentarios a continuación.