Byt*_*der 55
找出使用该type命令的命令的类型。
$ type cd
cd is a shell builtin
$ type ls
ls is aliased to `ls --color=auto'
$ type cat
cat is /bin/cat
Run Code Online (Sandbox Code Playgroud)
可以看到,cd是shell内建的。
这意味着,它是 shell 的一部分,默认情况下是Bash。这当然也是它所包含的软件包。
对于不是 shell 内置程序而是可执行文件的已安装命令,使用dpkg -S来查找包:
$ dpkg -S $(which cat)
coreutils: /bin/cat
Run Code Online (Sandbox Code Playgroud)
要获取有关内置命令的帮助,请使用以下help命令(也是内置的):
$ help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
Change the shell working directory.
[... output shortened ...]
Run Code Online (Sandbox Code Playgroud)
Tim*_*m B 25
cd必然是内置的shell。如果 shell 产生一个子进程改变了工作目录然后退出,父进程(shell 本身)不会受到影响。
至于 的源代码cd,它需要做的就是调用chdir(2),它改变了进程的工作目录。请参阅opengroup.org 上的chdir,其中指出:
chdir() 函数将使由 path 参数指向的路径名命名的目录成为当前工作目录;也就是说,路径搜索的起点不是以“/”开头的路径名。
Rin*_*ind 18
这是cd的手册页,但它不是官方的,因为它cd是“Shell 内置命令”的一部分。就像其他一些命令一样......
alias, bg, bind, break, builtin, command, compgen, complete,
continue, declare, dirs, disown, echo, enable, eval, exec, exit,
export, fc, fg, getopts, hash, help, history, jobs, kill, let, local,
logout, popd, printf, pushd, pwd, read, readonly, return, set, shift,
shopt, source, suspend, test, times, trap, type, typeset, ulimit,
umask, unalias, unset, wait
Run Code Online (Sandbox Code Playgroud)
请参阅bash的手册页。从链接cd状态:
cd [-L|-P] [目录]
将当前目录更改为 dir。变量 HOME 是默认目录。变量 CDPATH 定义了包含 dir 的目录的搜索路径。CDPATH 中的替代目录名称由冒号 (:) 分隔。CDPATH 中的空目录名与当前目录相同,即“.”。如果 dir 以斜杠 (/) 开头,则不使用 CDPATH。-P 选项表示使用物理目录结构而不是跟随符号链接(另请参阅 set 内置命令的 -P 选项);-L 选项强制遵循符号链接。- 的参数等效于 $OLDPWD。如果使用 CDPATH 中的非空目录名,或者如果 - 是第一个参数,并且目录更改成功,则新工作目录的绝对路径名将写入标准输出。如果目录更改成功,则返回值为真;否则为假。
命令“cd”在哪个包中?
那将是bash
| 归档时间: |
|
| 查看次数: |
5723 次 |
| 最近记录: |