GNU/Linux >> Linux の 問題 >  >> Linux

xargs でエイリアス化されたコマンドを使用するにはどうすればよいですか?

代わりに「gi」をスクリプトに変えてください

例:/home/$USER/bin/gi :

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

ファイルを実行可能としてマークすることを忘れないでください。


ここでの提案は、xargs を避け、xargs の代わりに「while read」ループを使用することです:

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

ファイル名のスペースまたは改行を処理するための改良点については、上記のリンクで承認された回答を参照してください。


エイリアスはシェル固有です。この場合、おそらく bash 固有です。エイリアスを実行するには、bash を実行する必要がありますが、エイリアスはインタラクティブ シェル (より正確には .bashrc 対話型シェルでのみ読み取られます)。

bash -i 対話型シェル (およびソース .bashrc) を実行します。bash -c cmd cmd を実行します .

それらをまとめる:bash -ic cmd cmd を実行します cmd の対話型シェルで .bashrc で定義された bash 関数/エイリアスにすることができます .

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

あなたがやりたいことをするべきです。

編集:質問に「tcsh」のタグを付けたようです。そのため、bash固有のソリューションは適用できません。 tcsh では、-i は必要ありません 、 -f を指定しない限り、.tcshrc を読み取るように見えるため .

これを試してください:

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

私の基本的なテストではうまくいきました。


Linux
  1. libvirtでVagrantを使用する方法

  2. Bash履歴コマンドの使用方法

  3. Linuxでの例で「cat」および「tac」コマンドを使用する方法

  1. コマンドの使用方法を学ぶためにマニュアルページを使用する方法?

  2. LinuxでPythonでアラートダイアログを使用するにはどうすればよいですか?

  3. Bash でコマンドのグループをタイムアウトする方法

  1. SOCKS 5 プロキシで SSH を使用するにはどうすればよいですか?

  2. Bashでwatchコマンドとjobsコマンドを一緒に使用するにはどうすればよいですか?

  3. Linuxでxargsを使用してファイルを移動するにはどうすればよいですか?