私は次のことをやろうとしています。
alias banana='emacs /usr/local/nagios/etc/objects/'
したがって、このファイル(/usr/local/nagios/etc/objects/firewall.cfg)を編集するには、「bananafirewall.cfg」と入力したいと思います。私が入力すると、emacsは2つのバッファを開くでしょう。 1つはディレクトリ編集モードで「/usr/local/nagios/etc/objects」用で、もう1つはFirewall.cfgという空の2番目のファイルで開きます。これは明らかにコマンド "バナナファイアウォール.cfg"は機能しません。
30分間頭を傷つけました。エイリアスは正しいコマンドですか?これらすべてのファイルを/ rootにln -sすることができると思いますが、他の提案はありますか?
答え1
エイリアスは、コマンドに異なる名前を付けたり、デフォルトの引数を渡したりするのに役立ちます。それに加えて、彼らは、例えば主張を修正するのにうまくいきません。代わりに関数を使用してください。
複数のファイル名を簡単にサポートするには、まずターゲットディレクトリに切り替えます。サブシェルを作成するには、中かっこではなく括弧を使用して、ディレクトリの変更が親シェルに影響を与えないようにします。
banana () (
cd /usr/local/nagios/etc/objects/ &&
emacs "$@"
)
答え2
次のシェル関数を使用できます。
banana () { emacs /usr/local/nagios/etc/objects/"$1"; }
1つのファイル名でのみ機能します。複数をサポートすると、状況がより複雑になります。