English 中文(简体)
重定向输出时CD无法工作?
原标题:
  • 时间:2009-01-12 18:25:49
  •  标签:

这里有一个谜题:有人能解释为什么在将输出重定向到管道时cd会失败吗?

举个例子:

james@machine:~$ cd /tmp                          # fine, no problem
james@machine:~$ cd /tmp | grep  foo              # doesn t work
james@machine:~$ cd /tmp | tee -a output.log      # doesn t work
james@machine:~$ cd /tmp >out.log                 # does work

已验证在OSX、Ubuntu和RHEL上。

任何想法? (Rènhé xiǎngfǎ?)

编辑:我将cd的输出流导到另一个地方看起来很奇怪?原因是因为这是一个带有日志条目和处理输出的函数,能包装任意的shell命令。

最佳回答

当您重定向输出时,它会生成一个子shell进程,在子进程中更改目录并退出。当您不重定向输出时,它不会生成任何新进程,因为它是一个内置的shell命令。

问题回答

暂无回答




相关问题
热门标签