コマンドライン(bash)を介してマシンの別のディレクトリ(この場合はMac OS X 10.6.7を実行)に「cd」するたびに、すぐに「ls」と入力してコンテンツのリストを取得しますそのディレクトリに。私は 'cd'をオーバーライドして、要求されたディレクトリに変更し、リストを一度に表示する方法を見つけようとしています。
〜/ .bash_profileに次の行を追加することで、探している基本的な機能を取得することができました
function cl() { cd "$@"; ls -l; }
これは期待どおりに機能します。要求されたディレクトリに変更し、コンテンツを表示します。私が問題に遭遇するのは、新しい「cl」コマンドを作成するのではなく、「cd」自体をオーバーライドしようとしています。
次のものがありません仕事します
##### Attempt 1 #####
# Hangs the command line
function cd() { cd "$@"; ls -l; }
##### Attempt 2 #####
# Hangs the command line
function cd() { 'cd' "$@"; ls -l; }
##### Attempt 3 #####
# Does not change directory.
# Does list contents, but of the directory where you started.
function cd() { /usr/bin/cd "$@"; ls -l; }
#### Other attempts that fail in various ways #####
alias cd=cd "$@"; ls -la;
alias cd="cd '$@'; ls -la;"
alias cd='cd "$@"'; ls -la;
alias cd=/usr/bin/cd "$@"; ls -la;
また、リストされていない他の反復をいくつか試し、作業中の「cl」関数を指すエイリアスを作成しました。どれも機能しませんでした。
私がドキュメントで読んだことは、「cd」が外部コマンドとして実行できないという事実について語っています(これは、関数がそれを使用するのに必要な方法であると理解しています)。
そのため、現在「cl」コマンドを使用して必要なものを取得できますが、問題は次のとおりです。
「cd」の動作をオーバーライドして、要求されたディレクトリに変更し、その後何か他のことをする方法はありますか?