Búsqueda de sitios web

12 ejemplos prácticos del comando Linux Xargs para principiantes


Xargs es un excelente comando que lee flujos de datos de entrada estándar, luego genera y ejecuta líneas de comando; lo que significa que puede tomar el resultado 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 la entrada estándar.

Hay varias formas en las que xargs resulta ú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 permite imprimir la ruta completa del archivo en la salida estándar, seguida de un carácter nulo y el indicador -0 xargs se ocupa efectivamente del espacio en los nombres de archivos.

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

2. También puede convertir la salida de varias líneas 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, utilice 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 de forma recursiva un directorio; por ejemplo, el siguiente comando eliminará de forma recursiva DomTerm 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 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, 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 utilizar el comando de búsqueda, xargs y los comandos de cambio de nombre juntos para cambiar el nombre de todos los archivos o subdirectorios en un directorio 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, que 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 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 detalle 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 elementos usando espacios en blanco, puede usar el indicador -d para establecer el delimitador, que puede ser un un solo carácter, un carácter de escape de estilo C como \n, o un código de escape octal o hexadecimal.

Además, también puede preguntarle al usuario si desea 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 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 crear una línea de comando; puede ayudarle a pasar la salida de un comando como argumento de otro comando para su procesamiento. En este artículo, explicamos 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.