12 ejemplos prácticos de Linux Xargs Command para principiantes


Xargs es un gran comando que lee flujos de datos desde una entrada estándar, luego genera y ejecuta líneas de comandos; lo que significa que puede tomar salida de un comando y lo pasa como argumento de otro comando. Si no se especifica ningún comando, xargs ejecuta echo de forma predeterminada. Usted también le indica que lea los datos de un archivo en lugar de la entrada estándar.

Hay varias formas en 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 de .png y archivarlas usando la utilidad tar de la siguiente manera.

Aquí, el comando de acción -print0 permite imprimir la ruta completa del archivo en la salida estándar, seguido de un carácter nulo y la marca -0 de xargs efectivamente trata 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 conocer 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 encontrar y eliminar recursivamente un directorio, por ejemplo, el siguiente comando eliminará recursivamente DomTerm en el directorio Descargas .

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

6. Al igual que el comando anterior, también puede encontrar todos los archivos llamados 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, use xargs para copiar un archivo a 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 el comando de búsqueda, xargs y cambiar el nombre de los comandos para cambiar el nombre de todos los archivos o subdirectorios de un directorio en particular a minúsculas de la siguiente manera.

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

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

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

10. Como se mencionó anteriormente, puede indicar a xargs que lea los elementos de un archivo en lugar de la entrada estándar usando la marca -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. De forma predeterminada, xargs termina/delimita los elementos utilizando espacios en blanco, puede usar el indicador -d para establecer el delimitador que puede ser un un solo carácter, un escape de caracteres de estilo C como \ n , o un código de escape octal o hexadecimal.

Además, también puede preguntar al usuario si debe ejecutar cada línea de comando y leer una línea desde el terminal, usando la marca -p como se muestra (simplemente escriba y para 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 del manual de xargs .

$ man xargs 

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