![一次更改2个终端的工作目录](https://linux22.com/image/43421/%E4%B8%80%E6%AC%A1%E6%9B%B4%E6%94%B92%E4%B8%AA%E7%BB%88%E7%AB%AF%E7%9A%84%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95.png)
我通常会打开 gnome-terminal,并打开大约 8 个选项卡,使用 2 个连续的选项卡来完成同一任务(一个有 emacs,另一个用于执行 git checkins 和 unittest 运行等)。
更改任务时,我需要在两个选项卡中移动到新目录。如何以尽可能少的步骤将第二个选项卡的工作目录更改为第一个选项卡的工作目录?最好只有键盘。
答案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
尝试终端模拟器终结者。您可以打开多个 shell 并使用“全部广播”功能向所有 shell 发送相同的命令。
答案3
您所寻找的内容可以通过编写 shell 脚本来实现
xdo工具
您可以使用的示例脚本:
#!/bin/bash
xdotool type "cd $1
"
xdotool key Ctrl+Next
xdotool type "cd $1
"
答案4
在 zsh 中,您可以执行以下操作:
- 在 shell 中运行命令。
fc -AI
在那个 shell 中运行。fc -RI
在另一个 shell 中运行。- 在第二个 shell 中运行
!!
或Up按下 来调用第一个 shell 中执行的最后一个命令。Enter
fc -AI
写出第一个 shell 的命令历史记录,并将fc -RI
其读回第二个 shell。如果您打开,则在每个命令之后会自动执行inc_append_history
相当于 的操作。fc -AI
如果您打开该share_history
选项,则所有历史记录行都会在所有 shell 实例之间自动共享,因此您可以直接从步骤 1 转到步骤 4。这可能会让人感觉具有侵入性。
如果您使用相对路径来更改目录,则需要首先获取绝对路径。一种方法是键入cd $PWD
(或者仅$PWD
在您打开了该auto_cd
选项的情况下)并按Tab(或C-x *
使用某些完成设置)展开,$PWD
然后按Enter。