Bashに次のエイリアスがあるとしましょう-alias ls='ls --color=auto'
-オプションなしで通常のls
を呼び出したい。これを行う唯一の方法は、エイリアスを解除し、コマンドを実行してから、再度エイリアスすることですか?または、気の利いたトリックや回避策がありますか?
エイリアスは定義されたショートカットです。この例では、定義されたエイリアスはls
で、ls --color=auto
を実行します。その動作を望まない場合は、絶対パスを使用してバイナリls
を呼び出すことができます。
したがって、/bin/ls
だけを実行すると、定義したエイリアスではないため、色なしの出力が生成されます。
また、エイリアスを別のエイリアスに変更するか、カラーパラメータなしでls
のみを実行する新しいエイリアスを追加することもできます。
@utherの答えを基にしたもう1つの方法は、$(which ...)
または`which ...`
(バックティック``
を使用)を使用して実行可能ファイルのパスを自動的に見つけることです。これはbash
で動作します:
$(which ls)
`which ls`
間違いなく、コマンドの前に\
を付けるだけの方がはるかに短いです。
[〜#〜] update [〜#〜]: によると、エイリアスコマンドで `which`を使用するには? 、これはまったく信頼できないようです。
個人的には、コマンドと同じ名前のエイリアスを定義しないようにしています。そのため、ls
は常に実際のコマンドを呼び出します。 l
、ll
、lg
などのオプションのさまざまな組み合わせのエイリアスまたは関数があります。 (つまり、unalias ls
または.bashrc
に.cshrc
が必要です。)
私が好むかもしれないオプションに関するOSの仮定(ls
コマンド自体の設計者の仮定を上書きする)は、私の個人的な好みにほとんど一致しないことがわかりました。私はたまたまls --color=auto
の外観が嫌いです。その読みやすさは、白地に黒と黒地に白の間で大きく異なります。
YMMVと他のソリューションはもちろん知っておくと良いでしょう。
コマンドを大文字で入力すると、LS
のように機能するようですが、理由はよくわかりません。