私は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