GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando xargs de Linux

Introducción

Ciertos comandos de Linux reciben entradas tanto de la entrada estándar (stdin) como de un argumento de la línea de comandos. Sin embargo, otros están diseñados para tomar entradas solo como un argumento. Para poder procesar la entrada estándar, esos comandos de Linux deben utilizar xargs comando.

En este tutorial, aprenderá a usar los xargs de Linux comando para manipular la entrada estándar y trabajar con otros comandos.

Requisitos previos

  • Un sistema que ejecuta Linux
  • Acceso a la línea de comando

¿Qué es el comando xargs?

Los xargs command crea y ejecuta comandos proporcionados a través de la entrada estándar. Toma la entrada y la convierte en un argumento de comando para otro comando. Esta característica es particularmente útil en la administración de archivos, donde xargs se usa en combinación con rm , cp , mkdir y otros comandos similares.

Cómo usar el comando xargs con ejemplos

Cuando se usa solo, xargs solicita al usuario que ingrese una cadena de texto que luego pasa al echo comando.

El ejemplo muestra una entrada de ejemplo, seguida de la salida de echo comando.

Combina xargs con find

El comando de búsqueda a menudo precede a xargs en una tubería. Úselo para proporcionar una lista de archivos para su posterior procesamiento por parte de xargs . La sintaxis se ve así:

find [location] -name "[search-term]" -type f | xargs [command]

El ejemplo anterior demuestra el uso de find Comando para encontrar todos los archivos con .sh extensión. Luego, la lista de archivos se canaliza a xargs , que utiliza el rm comando para borrarlos.

Sin embargo, xargs no incluye automáticamente archivos que contienen espacios en blanco en sus nombres. Para incluir esos archivos también, use -print0 opción para find y el -0 opción para xargs :

find [location] -name "[search-term]" -type f -print0 | xargs -0 [command]

rm ahora elimina todos los archivos con .sh extensión.

Combina xargs con grep

Utilice xargs con el comando grep para buscar una cadena en la lista de archivos proporcionada por find comando.

find . -name '[search-term]' | xargs grep '[string-to-find-in-files]'

El ejemplo anterior buscó todos los archivos con .txt extensión y los canalizó a xargs , que luego ejecutó el grep orden sobre ellos.

Comandos Múltiples Xargs

Para ejecutar más de un comando con xargs , use el -I opción. La sintaxis es:

[command-providing-input] | xargs -I % sh -c '[command-1] %; [command-2] %'

En el ejemplo, el contenido de file4.txt se exhibieron primero. Entonces mkdir creó una carpeta para cada palabra en el archivo.

Leer elementos del archivo

Como se mencionó antes, xargs lee la entrada estándar. Usa el -a opción para leer el contenido de un archivo en su lugar.

xargs -a [filename]

Buscar y archivar imágenes usando tar

Cuando se usa con el comando tar, xargs crea un tar.gz archivo y lo rellena con archivos proporcionados por find comando.

find [location] -name "[search-term]" -type f -print0 | xargs -0 tar -cvzf [tar-gz-archive-name]

Comando de impresión

Para ver los comandos ejecutados por xargs en la salida estándar, utilice -t opción.

[command-providing-input] | xargs -t [command]

En el ejemplo anterior, observe que xargs ejecutó el comando mkdir en toda la cadena proporcionada por echo .

Aprobar la ejecución del comando xargs

Algunos xargs las operaciones, como la eliminación de archivos y carpetas, son irreversibles. Para controlar la ejecución de esos comandos, use -p opción.

[command-providing-input] | xargs -p [command]

Cuando ejecuta el comando con -p opción, xargs muestra una línea de confirmación antes de ejecutarlo. Escriba y para continuar, o n para cancelar la operación.

Límite de salida por línea

A veces es necesario controlar el número de argumentos xargs toma al mismo tiempo. Realice esta acción usando -n opción seguida de la cantidad de argumentos que está limitando xargs a:

[command-providing-input] | xargs -n [number] [command]

En el siguiente ejemplo, xargs toma la cadena del echo comando y lo divide en tres. Luego ejecuta otro echo para cada una de las partes:

Especifique el delimitador

Los xargs predeterminados delimitador es un espacio en blanco. Para cambiar el delimitador predeterminado, use -d comando seguido de un solo carácter o un carácter de escape como n (una nueva línea).

[command-providing-input] | xargs -d [new-delimiter] | xargs [command]

En el siguiente ejemplo, xargs El comando le indica al sistema que use * como delimitador y aplicar mkdir a cada uno de los argumentos obtenidos.

Lista de todas las cuentas de usuario de Linux en el sistema

Utilice xargs para organizar la salida de los comandos, como cut . Considere el siguiente ejemplo:

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

El comando cortar accede al /etc/passwd y utiliza el : delimitador para cortar el comienzo de cada línea en el archivo. Luego, la salida se canaliza a sort , que ordena las cadenas recibidas y, finalmente, a xargs que los muestra:

Eliminar espacios en blanco en la cadena

Desde xargs ignora los espacios en blanco cuando busca argumentos, el comando es útil para eliminar espacios en blanco innecesarios de las cadenas.

echo "[string-with-unnecessary-spaces]" | xargs

Lista de número de líneas/palabras/caracteres en cada archivo

Utilice xargs con el comando wc para mostrar una lista de archivos con el número de líneas, palabras y caracteres.

ls | xargs wc

El siguiente ejemplo instruyó al comando ls para canalizar a xargs sólo los archivos que contienen la palabra "ejemplo". xargs luego aplicó wc a esa lista:

Copiar archivo a varios directorios

Copie archivos a varios directorios usando xargs dominio. La sintaxis es simple:

echo [directory-1] [directory-2] | xargs -n 1 cp -v [filename]

El echo El comando proporciona nombres de directorio y xargs usa el comando cp para copiar el archivo dado en cada uno de los directorios.


Linux
  1. Cómo usar el comando sed de Linux

  2. Cómo usar el comando grep de Linux

  3. Cómo usar el comando de historial en Linux

  4. Cómo usar el comando Su en Linux

  5. Cómo usar el comando "pantalla" en Linux

Cómo usar el comando superior de Linux

Cómo usar el comando fd en el sistema Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

Cómo usar el comando RPM en Linux

Cómo usar el comando which en Linux