組み込みのcdとcdコマンドの違いは何ですか?

組み込みのcdとcdコマンドの違いは何ですか?

私はLinuxコマンドを見つけましたbuiltin cd

コマンドbuiltin cdとの違いは何ですかcd

実際、この違いについていくつかの調査を行いましたが、それについて意味のある意味のある説明が見つかりませんでした。

ベストアンサー1

このcdコマンドは組み込みコマンドなので、通常はbuiltin cd同じことを行いますcd。ただし、cd関数またはエイリアスでオーバーライドすると違いがあります。この場合、cd関数/エイリアスは呼び出されますが、builtin cdディレクトリは変更され続けます。つまり、組み込みのアクセシビリティは消滅してもそのまま残ります。機能として。)

たとえば、

user:~$ cd () { echo "I won't let you change directories"; }
user:~$ cd mysubdir
I won't let you change directories
user:~$ builtin cd mysubdir
user:~/mysubdir$ unset -f cd  # undefine function

またはエイリアスを使用してください。

user:~$ alias cd='echo Trying to cd to'
user:~$ cd mysubdir
Trying to cd to mysubdir
user:~$ builtin cd mysubdir
user:~/mysubdir$ unalias cd  # undefine alias

を使用することは、特定のタスクを実行する関数を定義する良い方法builtinでもあります。cdそしてディレクトリの変更(cdこのディレクトリから呼び出すと、無限再帰で関数が再度呼び出されるためです。)

たとえば、

user:~ $ cd () { echo "Changing directory to ${1-home}"; builtin cd "$@"; }
user:~ $ cd mysubdir
Changing directory to mysubdir
user:~/mysubdir $ cd
Changing directory to home
user:~ $ unset -f cd  # undefine function

おすすめ記事