gpt4 book ai didi

shell - pushd popd 全局目录堆栈?

转载 作者:行者123 更新时间:2023-12-04 17:54:53 29 4
gpt4 key购买 nike

我不知道是否有有效的方法来做到这一点。但是,一直想看看它是否可能。

我知道 pushd、popd 和 dirs 对于许多事情都很有用,例如在您最近访问过的目录之间进行复制。

但是,有没有一种方法可以保持全局堆栈?因此,如果我在一个终端中推送某些内容(使用 pushd),它会反射(reflect)在另一个终端中(可能只有该登录 session 中的终端)。

最佳答案

您应该能够使用一对 shell 函数和一个临时文件来做到这一点。

您的临时文件将命名为“/home/me/.directory_stack” ' 并且只包含目录列表:

/home/me
/etc
/var/log

您的“push_directory”函数只会将当前目录添加到列表中。 'pop_directory' 函数将从列表中取出最新的并切换到该目录。将堆栈存储在这样的文件中可确保信息存在于所有打开的终端(甚至重新启动)中。

以下是一些示例函数(警告:仅经过轻微测试)
directory_stack=/home/me/.directory_stack
function push_dir() {
echo $(pwd) >> $directory_stack
cd $1
}
function pop_dir() {
[ ! -s $directory_stack ] && return
newdir=$(sed -n '$p' $directory_stack)
sed -i -e '$d' $directory_stack
cd $newdir
}

将其添加到您的 .bashrc并且每次登录 shell 时都会自动定义它们。

关于shell - pushd popd 全局目录堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916551/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com