エイリアスの説明

エイリアスの説明

に複数のエイリアスがあります.bash_aliases。エイリアスを次のように定義しましたが、c正しく機能しません。

...
alias cd='cd; ls -r --time=atime'
alias c='cd'
...

その中に行があります.bashrc

alias ls='clear; ls --color=auto'

Commandnand はcエラーを出力します。と同じ出力を提供する必要があります cd; clear; ls -r --time=atime --color=auto

その他の質問:私がこの記事を入力している間、cd dir私は中にいなければなりdirませんでした。$HOME

この問題を解決してエイリアス定義を改善するにはどうすればよいですか?.bash_aliasesとして説明されているregular grammar

答え1

代わりに、関数を使用すると、パラメータを渡して構文をより明確にすることができるという利点があります。

function cd() {
  command cd "$@"
  ls -r --time=atime
}

function c() {
 cd "$@"
}

function ls() {
  clear
  command ls --color=auto "$@"
}

(同じ名前の機能ではなく、実際のコマンドを参照するために使用される組み込みコマンドcommandです。)bash

答え2

cと全く同じでなければなりません。 fromと同じエラーがcd表示されると予想されます。cd dirc dirc

cdエイリアスは単純なテキスト置換を実行するため、定義どおりに機能しません。 .aliasescd dirへの拡張は、cd; ls -r --time=atime dirコマンドに短い名前を与えるか、または同じ基本オプションを提供することにほとんど制限されalias c=cdますalias cp='cp -i'。複数のコマンドの実行など、より複雑な操作には関数を使用してください。

cd () {
  command cd "$@" &&
  ls -r --time=atime
}

また、見ることができますエイリアス、関数、スクリプトエイリアスにパラメータを渡すには?

関連情報