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

「,,」を「..」にエイリアスできますか?

エイリアスはこれを行うためのものではありませんが、 cd という関数を作成できます これは実際の cd のラッパーです .これは私のために働く! .bash_profile に入れるだけです または選択したプロファイル ファイル。

cd () { if [ "$1" = ",," ]; then builtin cd ..; else builtin cd "[email protected]"; fi; }

または、コメントときれいな書式設定:

cd ()
{
  if [ "$1" = ",," ]; then  # if first argument is ",,"...
    builtin cd ..           # call the builtin cd with ".." instead...
  else
    builtin cd "[email protected]"         # else call builtin cd with original arguments 
  fi
}

編集

if then else を指摘してくれた @derobert に感謝します ここは && || よりも優れています .また、今気づきました (*facepalm *) この実装は、パス以外の引数 (つまり、-L -P) がある場合にのみ機能します。 ) は最初の引数ではありません。 cd -L ,, と入力する悪い癖がある場合は注意してください。 これはあなたを助けるつもりはありません。そして、それを正しく処理するのは簡単ではないと思います.


ZSH:

zsh を使用している場合 alias -g ,,=".." 必要なものですが、これにより、cd で使用した場合だけでなく、「,,」がどこにでも展開されます。 .

man zshbuiltins から :

<ブロック引用>

-g の場合 フラグが存在する場合、グローバル エイリアスを定義します。グローバル エイリアスは、コマンドの位置にない場合でも展開されます。

バッシュ:

bash に制限されている場合 (質問は bash でタグ付けされているため)、以下をお読みください:

これは要求どおりの純粋なエイリアス ソリューションですが、ただし これは必要以上にユーザーをイライラさせる可能性があります (私の投稿の最後にある警告を参照してください)。

man bash の引用 :

<ブロック引用>

エイリアス値の最後の文字が空白の場合、エイリアスに続く次のコマンド ワードもエイリアス展開のためにチェックされます。

したがって、エイリアス cd で十分です 余分なスペース (次の引数を展開できるようにするため) とエイリアス ,, .. へ .見てください

alias cd='cd '
alias ,,='..'

必要なものを正確に提供します。

これは bash だけではないことに注意してください (そしてその alias 実装)、しかしすべての POSIX 準拠のシェル。 man 1p alias からの例の引用 (マニュアルではこの機能について明示的に説明しておらず、例を通してのみ説明しています):

<ブロック引用>
  1. それ自体がエイリアス名である引数を処理できるように、nohup をセットアップします。

           alias nohup="nohup "
    

警告: @PeterCordes がコメントに書いているように、自動的に other が発生します。 cd の後に書かれたときに展開するエイリアス . cd \grep と書く必要があるかもしれません ディレクトリを grep という名前のディレクトリに変更したい場合 しかし、あなたの grep grep --color=auto のエイリアスです .バックスラッシュなし、cd 「引数が多すぎます」というエラーが報告されます (cd はできません) 一度に 2 つのディレクトリに)!.


エイリアスは 最初の単語 にする必要があります コマンドの。また、エイリアスは単語の代わりに使用する必要があります したがって、スペースはありません)。

<ブロック引用>

Bash リファレンス マニュアル:エイリアス

エイリアスを使用すると、単語を文字列に置き換えることができます 最初の単語として使用される場合

.. の両方に別名を付けることができます と ,, cd .. になる .

$ alias ..="cd .."
$ alias ,,="cd .."
$ cd /tmp && pwd
/tmp
$ ,, && pwd
/

Linux
  1. パラメータをエイリアスに渡す方法は?

  2. `alias Sudo !!`の方法は?

  3. エイリアスによってシャドウされているコマンドを実行しますか?

  1. カラーテーマはバッファにバインドできますか?

  2. Linux エイリアス チェーン コマンド (再帰を回避できますか?)

  3. Python で C コードを使用できますか?

  1. Bashスクリプトをファイルに接続できますか?

  2. Linux で Dota 2 をプレイできますか?

  3. ディスク io を監視するにはどうすればよいですか?