首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更改tmux会话的起始目录?

如何更改tmux会话的起始目录?
EN

Stack Overflow用户
提问于 2014-12-05 02:30:43
回答 5查看 24.1K关注 0票数 58

启动tmux会话的目录将是新窗口启动的目录。如何在不关闭tmux会话的情况下更改这个启动目录?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-04-05 19:37:18

这样做的方法是从会话(带有默认键绑定的^b d)中分离出来,然后在重新附加到它时指定一个不同的目录。附加到会话时,使用-c标志指定工作目录。下面是一个例子:

代码语言:javascript
运行
复制
$ tmux list-sessions
tmuxwtfbbq: 3 windows (created Tue Apr  5 14:25:48 2016) [190x49]
$ tmux attach-session -t tmuxwtfbbq -c /home/chuck/new_default_directory

此设置将被持久化--在重置工作目录之后,您将不需要每次重新附加到会话时都指定它。

为了记录在案,我使用的是tmux2.0版本(尽管我认为这并不重要--我无法在更改日志中找到向-c命令添加attach-session选项的任何方法,因此我猜想它已经存在了很长一段时间了)。

票数 63
EN

Stack Overflow用户

发布于 2019-01-30 16:12:09

Chucksmash的答案不错,但如果您愿意的话,也可以不使用会话来实现它。命令attach-session在tmux命令提示符中也可用;可以使用点指定目标会话为“当前”会话。

代码语言:javascript
运行
复制
attach-session -t . -c /path/to/new/directory
票数 28
EN

Stack Overflow用户

发布于 2020-06-17 06:17:36

下面是如何更改tmux会话的工作目录,而不需要分离会话,也不需要使用<prefix>击键:

(选项1)在tmux命令提示符下输入目录:

tmux command-prompt "attach -c %1"

...will打开命令提示符,然后键入需要~/my/dir的工作目录,然后按ENTER

(选项2)在窗格内命令行上提供目录:

代码语言:javascript
运行
复制
# Execute this in one of the shell panes of within your tmux session:
tmux command-prompt -I $PWD -P "New session dir:" "attach -c %1"

使用这种方法,使用启动命令的窗格的当前dir预先填充新目录的提示符。当然,如果你愿意的话,你可以用其他任何东西来代替$PWD

想要一个shell函数吗?

我在shell初始化中添加了以下内容:

代码语言:javascript
运行
复制
# Change the current directory for a tmux session, which determines
# the starting dir for new windows/panes:
function tmux-cwd {
    tmux command-prompt -I $PWD -P "New session dir:" "attach -c %1"
 }

有了所有这些选项,未来的任何新窗口都将在给定的dir中启动。

注意:attachattach-sessiona都是彼此的别名。tmux command-prompt还有很多其他的能力,值得阅读手册页

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27307815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档