私はしばしば次のことをしていると思います。
%> cd bla/bla
%> ls
cd
自動的に実行するようにしたいと思いますls
。
しばらくこれを触ってみましたが、どのように.bashrc
実装するのかわかりません。
ベストアンサー1
これを行うには、関数を使用できます。
$ cdls() { cd "$@" && ls; }
&&
「cd
ディレクトリに移動して成功した場合(たとえば、ディレクトリが存在する場合)を実行する」を意味しますls
。 2つの&&
コマンドの間には、セミコロン演算子よりも演算子を使用することをお勧めします。 2番目のコマンドは有効かどうかにかかわらず実行されます。これが失敗すると、現在のディレクトリの内容が印刷され、ユーザーに混乱を招く可能性があります。最良の方法は代わりに使用することです。;
{ cd "$@"; ls; }
ls
cd
cd
ls
&&
;
$ cdls /var/log
CDIS.custom fsck_hfs.log monthly.out system.log
$ pwd
/var/log
通常、すでに存在するコマンドの名前を変更することはお勧めできませんcd
。特に同じコマンドの場合は、別の名前で新しいコマンドを生成してください。cd
同じ名前の関数やエイリアスでそれをオーバーライドすると、cd
100,000個のファイルがあるディレクトリに入るとどうなりますか?多くのユーティリティが使用され、これらのcd
異常な動作のために混乱する可能性があります。共有アカウントを使用している場合(たとえば、root
他のシステム管理者と連携している場合など)、環境が予期したものと異なるため、既存のコマンドを置き換えるのは非常に危険です。