GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu používat aliasované příkazy s xargs?

Místo toho přeměňte „gi“ na skript

např. v /home/$USER/bin/gi :

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

nezapomeňte označit soubor jako spustitelný.


Zde je doporučeno vyhnout se xargům a místo xargs použít smyčku "při čtení":

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

Podívejte se na přijatou odpověď ve výše uvedeném odkazu pro upřesnění, jak se vypořádat s mezerami nebo novými řádky v názvech souborů.


Aliasy jsou specifické pro shell – v tomto případě s největší pravděpodobností specifické pro bash. Chcete-li spustit alias, musíte provést bash, ale aliasy se načítají pouze pro interaktivní shelly (přesněji .bashrc bude čteno pouze pro interaktivní shell).

bash -i spouští interaktivní shell (a zdroje .bashrc).bash -c cmd spustí cmd .

Dejte je dohromady:bash -ic cmd spustí cmd v interaktivním prostředí, kde cmd může být bash funkce/alias definovaný ve vašem .bashrc .

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

měli byste dělat, co chcete.

Edit:Vidím, že jste otázku označili jako „tcsh“, takže řešení specifické pro bash není použitelné. S tcsh nepotřebujete -i , protože se zdá, že čte .tcshrc, pokud nezadáte -f .

Zkuste toto:

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

Fungovalo to pro mé základní testování.


Linux
  1. Jak používat příkazy „cat“ a „tac“ s příklady v Linuxu

  2. Jak používat manuální stránky, abyste se naučili používat příkazy?

  3. Jak mohu použít SSH s proxy SOCKS 5?

  1. Jak mohu v Bash používat společně příkazy watch a jobs?

  2. Jak mohu přesouvat soubory pomocí xargs v Linuxu?

  3. Jak mohu použít zástupné znaky stylu ms-dos s ls a mv?

  1. Jak získat procento využití procesoru pomocí bash?

  2. Jak mohu použít výstražný dialog s Pythonem v linuxu?

  3. Jak časový limit skupiny příkazů v Bash