に複数のエイリアスがあります.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 dir
c dir
c
cd
エイリアスは単純なテキスト置換を実行するため、定義どおりに機能しません。 .aliasescd dir
への拡張は、cd; ls -r --time=atime dir
コマンドに短い名前を与えるか、または同じ基本オプションを提供することにほとんど制限されalias c=cd
ますalias cp='cp -i'
。複数のコマンドの実行など、より複雑な操作には関数を使用してください。
cd () {
command cd "$@" &&
ls -r --time=atime
}
また、見ることができますエイリアス、関数、スクリプト、エイリアスにパラメータを渡すには?。