GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo usar comandos con alias con xargs?

Convierta "gi" en un script en su lugar

por ejemplo, en /home/$USER/bin/gi :

#!/bin/sh
exec /bin/grep -i "[email protected]"

no olvide marcar el archivo como ejecutable.


La sugerencia aquí es evitar xargs y usar un bucle "mientras se lee" en lugar de xargs:

find -name \*bar\* | while read file; do gi foo "$file"; done

Consulte la respuesta aceptada en el enlace de arriba para obtener mejoras para tratar con espacios o líneas nuevas en los nombres de archivo.


Los alias son específicos de shell; en este caso, lo más probable es que sean específicos de bash. Para ejecutar un alias, debe ejecutar bash, pero los alias solo se cargan para shells interactivos (más precisamente, .bashrc solo se leerá para un shell interactivo).

bash-i ejecuta un shell interactivo (y fuentes .bashrc).bash -c cmd ejecuta cmd .

Póngalos juntos:bash -ic cmd ejecuta cmd en un shell interactivo, donde cmd puede ser una función bash/alias definida en su .bashrc .

find -name \*bar\* | xargs bash -ic gi foo

deberías hacer lo que quieras.

Editar:veo que ha etiquetado la pregunta como "tcsh", por lo que la solución específica de bash no es aplicable. Con tcsh, no necesitas el -i , ya que parece leer .tcshrc a menos que proporcione -f .

Prueba esto:

find -name \*bar\* | xargs tcsh -c gi foo

Funcionó para mis pruebas básicas.


Linux
  1. Cómo uso Vagrant con libvirt

  2. Cómo usar los comandos del historial de Bash

  3. ¿Cómo usar las páginas man para aprender a usar los comandos?

  4. ¿Cómo puedo usar SSH con un proxy SOCKS 5?

  5. ¿Cómo uso los comandos watch y jobs juntos en Bash?

Qué es Git Bash; Trabajar con comandos de Git Bash

Cómo escribir un script Bash con ejemplos

Cómo usar el comando de lectura Bash

Cómo usar el comando xargs de Linux

Cómo usar los comandos de Netcat con ejemplos

Android:¿cómo puedo usar los comandos de shell e interactuar con el sistema Linux que se encuentra debajo?