`cd` 所有屏幕到当前屏幕的 PWD

`cd` 所有屏幕到当前屏幕的 PWD

假设我正在screen一个有四个打开屏幕的远程服务器上运行。有没有一种快速的方法将cd所有屏幕移动到当前打开屏幕的工作目录?

答案1

这是一种解决方法:在一个选项卡上,将 CWD 记录到临时文件中,在其他选项卡上,cd 到刚刚保存的目录。我会将这两个别名添加到我的 .bashrc 或 .bash_profile 中:

alias ds='pwd > /tmp/cwd'
alias dr='cd "$(</tmp/cwd)"'

ds(dir save)命令标记CWD,dr(dir recall)命令cd到它。您可以对 C-shell 执行类似的操作。

答案2

答案基本上是“否”。每个屏幕中运行的每个程序都是单独的进程,具有自己的工作目录。无法更改另一个进程的工作目录。进程只能更改自己的工作目录。

话虽这么说,解决方法是海武 指给你看将工作。它基本上将工作目录存储在一个文件中,然后您必须转到每个窗口并运行不同的命令来读取该文件并根据它设置当前工作目录。

如果文件内容发生更改,您可能可以使用一些丑陋的技巧来PROMPT_COMMAND自动更改工作目录。bash不过,直到您运行至少一个命令后,这才会生效。

也许如果你给出了你想要这种行为的原因,那么就可以给出该问题的解决方案。

相关内容