bashに次のエイリアスがあるとしますalias ls='ls --color=auto'--そして、lsオプションなしで普通に呼び出したいと思います。それを行う唯一の方法は、エイリアスを解除し、コマンドを実行してから再びエイリアスにすることですか?または、気の利いたトリックや回避策がありますか?
bashに次のエイリアスがあるとしますalias ls='ls --color=auto'--そして、lsオプションなしで普通に呼び出したいと思います。それを行う唯一の方法は、エイリアスを解除し、コマンドを実行してから再びエイリアスにすることですか?または、気の利いたトリックや回避策がありますか?
回答:
バックスラッシュの前にエイリアスを無効にすることもできます: \ls
編集:同じことを行う他の方法は次のとおりです。
Mikelにcommand lsよる「コマンド」を使用します。
完全なパスを使用してください:/bin/lsにつきとしてuther。
コマンドを引用します:"ls"または'ls'Mikelコメントに従って。
を使用して、そのターミナルセッションのエイリアスを一時的に削除できunalias command_nameます。
commandor とは異なりbuiltinます。
l\s同じことをするようです。この動作はバグですか、それとも機能ですか?
それがcommandコマンドの目的です。
試して
command ls
これは、エイリアスと関数をバイパスするようシェルに指示します。
エイリアスは、定義済みのショートカットです。この例では、定義されるエイリアスはstringでls、これが実行されls --color=autoます。その動作が望ましくない場合はls、絶対パスを使用してバイナリを呼び出すことができます。
その/bin/lsため、定義したエイリアスではないため、実行すると色のない出力が生成されます。
エイリアスを別のエイリアスに変更したりls、カラーパラメータなしで実行される新しいエイリアスを追加したりすることもできます。
/binとの間の分割/usr/binは任意です。
whichコマンドに使用できますwhich ls。
whichまたはtype)を使用する場合、$PATH;を介して検索を行います。あなたにもちょうど使用することがありますlsか\lsではなく、パスを指定します。
@utherの答えに基づいた別の方法は、実行可能ファイルのパスを自動的に見つけるために、$(which ...)または`which ...`(backticksを使用して``)を使用することです。これはで動作しbashます:
$(which ls)
`which ls`
間違いなく、単にコマンドの前にaを付けるだけ\ではるかに短くなります。
更新:エイリアスコマンドで「which」を使用する方法によると?、これはまったく信頼できないようです。
`which ls`バイナリを直接実行するつもりだと思います。
(which ls)私にとってはうまくいきませんでした(Ubuntu 12.04 LTS)。また、逆戻りが難しいため、エスケープしました:\ `which ls \`。そこに着くには多くの編集が必要でした:)
$か?
個人的には、コマンドと同じ名前のエイリアスを定義することは避けているため、ls常に実際のコマンドを呼び出します。私のようなオプションのさまざまな組み合わせのためのエイリアスや機能を持っているl、llとlg。(つまりunalias ls、.bashrcまたはで必要.cshrcです。)
私が好むオプションに関するOSの仮定(lsコマンド自体の設計者の仮定を無効にする)は、私自身の個人的な好みとほとんど一致しないことがわかります。私はたまたまの外観が嫌いでls --color=auto、その読みやすさは白地に黒と黒地に白の間で大きく異なります。
YMMV、およびその他のソリューションはもちろん、知っておくと良いでしょう。
コマンドを大文字で入力するとうまくいくようLSです。
LS - display animations aimed to correct users who accidentally enter LS instead of ls.