背景
たとえばxfce4-terminal
、と入力してプログラムを実行したいですterm
。
入力するとwhich xfce4-terminal
が返されます/usr/bin/xfce4-terminal
。
だから私はシンボリックリンクを作成しました:sudo ln -s /usr/bin/xfce4-terminal /usr/bin/term
。
今すぐ入力してプログラムを実行できますterm
。
質問
私はこれが私の目的を達成するための合理的な方法であるかどうか常に疑問に思いました。尋ねる最高方法(研究でさえない)は主観的な問題かもしれませんが、ここでは標準的な方法(ある場合)や私の方法が持つことができる長所と短所を尋ねています。
私は次の代替案を考えました。
- プログラムの名前を変更する:
mv xfce4-terminal term
- 環境変数を使用してください(ただし、これを行うにはいくつかの方法があります...)
- まず怠惰を避けてください。
私はすでにそれを知っていました:
- Tabオートコンプリートを活用できます。
- Ctrl(GUIから)++などのAltショートカットを使用できます。T
- 別のプログラム名が「term」の場合、シンボリックリンクを作成すると競合が発生する可能性があります。
- 名前を変更すると、依存関係が壊れる危険性があります。
環境:
uname --all
返品:
- Linux Debian 4.19.0-18-amd64 #1 SMP
- Debian 4.19.208-1 (2021-09-29)
- x86_64 GNU/Linux
答え1
最も安全な方法は、エイリアスを使用することです。それらすでにコメントで言及しています。
シンボリックリンクも機能しますが、一部のプログラムでは、呼び出される名前によって動作が変更されることに注意してください。
たとえば、bashスクリプトはコンテンツを調べ、$0
それに基づいてさまざまな機能を呼び出します。
プログラムの名前を変更すると問題が発生します。名前を変更した後は
、プログラムが依存するすべてがxfce4-terminal
失敗します。次に更新すると、システムに両方のバージョンのバイナリがあります。:-/