Una guía rápida paraxargs
comando, usado para pasar la salida de un comando y usarlo como argumento para otro comando
losxargs
El comando se usa en un shell de UNIX para convertir la entrada de una entrada estándar en argumentos a un comando.
En otras palabras, mediante el uso dexargs
la salida de un comando se utiliza como entrada de otro comando.
Aquí está la sintaxis que usará:
command1 | xargs command2
Usamos una pipa|
) para pasar la salida axargs
. Eso se encargará de ejecutar elcommand2
comando, usando la salida decommand1
como su (s) argumento (s).
Hagamos un ejemplo sencillo. Quiere eliminar algunos archivos específicos de un directorio. Estos archivos se enumeran dentro de un archivo de texto.
Tenemos 3 archivos:file1
,file2
,file3
.
Entodelete.txt
tenemos una lista de archivos que queremos eliminar, en este ejemplofile1
yfile3
:
Canalizaremos la salida decat todelete.txt
haciarm
comando, a través dexargs
.
De este modo:
cat todelete.txt | xargs rm
Ese es el resultado, los archivos que enumeramos ahora se eliminan:
La forma en que funciona es quexargs
correrárm
2 veces, una por cada línea devuelta porcat
.
Este es el uso más simple dexargs
. Hay varias opciones que podemos utilizar.
Uno de los más útiles en mi opinión, sobre todo a la hora de empezar a aprender.xargs
, es-p
. El uso de esta opción haráxargs
imprima un mensaje de confirmación con la acción que va a realizar:
los-n
la opción te permite decirxargs
para realizar una iteración a la vez, por lo que puede confirmarlos individualmente con-p
. Aquí te contamosxargs
para realizar una iteración a la vez con-n1
:
los-I
La opción es otra muy utilizada. Le permite obtener la salida en un marcador de posición y luego puede hacer varias cosas.
Uno de ellos es ejecutar varios comandos:
command1 | xargs -I % /bin/bash -c 'command2 %; command3 %'
Puedes intercambiar el
%
símbolo que usé arriba con cualquier otra cosa, es una variable
losxargs
El comando funciona en Linux, macOS, WSL y en cualquier lugar donde tenga un entorno UNIX
Descarga mi gratisManual de comandos de Linux
Más tutoriales de cli:
- El caparazón de Bash
- Introducción a las secuencias de comandos de Bash Shell
- La concha de pescado
- Shell, mira el contenido del archivo a medida que se completa
- Cómo salir de Vim
- Editores de UNIX
- Los comandos del sistema de archivos de UNIX
- Tutorial de shells de Unix
- Cómo establecer un alias en un shell de macOS o Linux
- Una guía práctica de Homebrew
- Cómo corregir el error de ruta de desarrollador activa no válida de xcrun en macOS
- La línea de comandos para principiantes completos
- Introducción a Linux
- Cómo encontrar el proceso que está usando un puerto
- Comandos de Linux: mkdir
- Comandos de Linux: cd
- Comandos de Linux: pwd
- Comandos de Linux: rmdir
- Comandos de Linux: ls
- Comandos de Linux: mv
- Comandos de Linux: cp
- Comandos de Linux: menos
- Comandos de Linux: tail
- Comandos de Linux: toque
- Comandos de Linux: cat
- Comandos de Linux: buscar
- Comandos de Linux: ln
- Comandos de Linux: ps
- Comandos de Linux: echo
- Comandos de Linux: arriba
- Comandos de Linux: matar
- Comandos de Linux: killall
- Comandos de Linux: alias
- Comandos de Linux: trabajos
- Comandos de Linux: bg
- Comandos de Linux: fg
- Comandos de Linux: escriba
- Comandos de Linux: que
- Comandos de Linux: whoami
- Comandos de Linux: quién
- Comandos de Linux: borrar
- Comandos de Linux: su
- Comandos de Linux: sudo
- Comandos de Linux: chown
- Comandos de Linux: chmod
- Comandos de Linux: passwd
- Comandos de Linux: abrir
- Comandos de Linux: wc
- Comandos de Linux: historia
- Comandos de Linux: du
- Comandos de Linux: umask
- Comandos de Linux: grep
- Comandos de Linux: man
- Comandos de Linux: uname
- Comandos de Linux: ordenar
- Comandos de Linux: uniq
- Comandos de Linux: diff
- Comandos de Linux: nohup
- Comandos de Linux: df
- Comandos de Linux: xargs
- Comandos de Linux: gzip
- Comandos de Linux: gunzip
- Comandos de Linux: ping
- Comandos de Linux: traceroute
- Comandos de Linux: tar
- Comandos de Linux: exportar
- Comandos de Linux: crontab
- Comandos de Linux: dirname
- Comandos de Linux: nombre base
- Comandos de Linux: printenv
- Comandos de Linux: env
- Una breve guía para el editor de educación
- Una breve guía de vim
- Una breve guía de emacs
- Una breve guía de nano
- Linux, no queda espacio en el dispositivo
- Cómo usar Netcat