问题标签 [pushd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3248 浏览

dockerfile - 可以在 Dockerfile 中使用 pushd/popd 吗?

有没有办法在 Dockerfile 中使用 pushd/popd 命令?如果可能的话,它会使一些安装脚本变得容易得多。

0 投票
0 回答
1044 浏览

bash - 仅在有时推送“没有这样的文件或目录”

回答:我的问题是 ${DIRSTACK[0]} 包含文字 ~,而 ${DIRSTACK[@]:1} 不会。当我打电话sort时,我正在重新安排订单,然后移动到的任何 DIRSTACK 元素 ${DIRSTACK[0]} 都无法与 pushd +element 一起使用。我通过不在我的 $HOME/.logs/dirstack 中记录 ${DIRSTACK[0]} 解决了这个问题,这样它就永远不会被重新排序到另一个索引。此错误于2017 年 10 月报告,将在 bash >4.4 的某些版本中修复。

原始问题

所以我尝试编写一个pushd函数,它可以 1)删除重复项pushd(因为 bash 没有)和 2)在所有dunique终端中保留最后 10 个目录,这意味着我必须写入文件。

所以,显然这个函数是愚蠢的,因为通过排序你真的不知道你正在cd进入哪个目录,但这更接近于一个最小的、可行的、完整的示例来显示问题。

大多数情况下,此功能不起作用,但有时会。失败时,它会显示如下错误:

成功后,它将正确地进入该目录。失败与使用的特定目录无关。所有目录都存在,我可以pushd ~/jenkins/dockercd ~/jenkins/docker没有问题。

0 投票
1 回答
123 浏览

mysql - 如何将文件从C复制到网络文件夹?

我想将 C:\file.txt 中的文件复制到 unc 路径为 \fic-bleu\MPM-DICIR\SERVICE-TUNNELS\ 的网络驱动器

我在谷歌看到我必须使用 pushd 和 popd 但它只修改当前提示。而且我不能从这个新提示中使用 mysqldump 命令。

我试过了 :

也许我必须先将dumpsql文件保存在我的计算机中,然后复制bu我找不到这样做的方法:(

最后我建立了这个脚本:

但他们说有太多的论点,所以我在谷歌找到了一个解决方案,说要在驱动路径中添加引号,现在它说驱动路径无效......

0 投票
2 回答
1094 浏览

loops - 为什么 %CD% 不能在带有 PushD 的 for 循环中工作

我想运行一个 .bat 脚本,该脚本创建一个文件并使用与其所在文件夹相同的名称保存它。我希望它在地图中启动并循环遍历子地图。我从下面的代码开始,并在其中一个子图中运行它。那行得通,我得到一个带有子图名称的文件。

所以现在我只需要把它放在一个 for 循环中。所以我做了下面的代码,这是行不通的。似乎%CD%是指我的父地图(子文件夹),.bat文件所在的位置,而不是我的子地图(video1、video2 等)。

输出:

我看到下面解释使用的链接,setlocal enabledelayedexpansion但我无法让它工作。

https://superuser.com/questions/503488/why-doesnt-cd-work-after-using-pushd-to-a-unc-path

任何意见,将不胜感激

0 投票
1 回答
1796 浏览

bash - bash:在脚本末尾 pushd 后不需要调用 popd 吗?

我在我的 bash 脚本中做一些适当的“pushd/popd 清理”时遇到了一些麻烦。那就是:如果我做pushd了几次,我想确保做相同数量的popdbefore exit

但是,我注意到 pushd/popd 堆栈似乎不是全局的。

假设我example-pushd-twice.sh在 homedir 中调用了这个脚本:

我从我的 homedir 中的 shell 执行此操作:(导致输出块引用)

dirs

~

./example-pushd-twice.sh

/etc ~
/tmp /etc ~

我现在希望仍然在/tmp并且仍然有一个包含 3 个目录的目录堆栈,但是:

dirs

~

这是正确的行为吗?我可以信任一个 shell 脚本来调用它自己的 pushd/popd 堆栈,这样我就不必关心事后清理了吗?

0 投票
1 回答
947 浏览

windows - pushd 无法在延迟扩展的批处理文件中工作

我已经阅读了很多关于pushd这里和其他网站的问题和答案,其中绝大多数都提到了 UNC 路径的问题。但是,我有一个不同的问题,我没有看到任何提示。

使用 Windows 10 x64 Enterprise(版本 1809),我正在控制台窗口中执行以下批处理文件:

我的问题是pushd似乎以错误的方式执行或根本没有执行。这意味着我不在运行批处理文件时c:\windows,但仍在运行它之前所在的目录中。

我拼命尝试了几件事来理解这个问题(知道这些测试没有意义):

  • c:\windows引号 ( set DestDir="c:\windows")
  • %DestDir%引号 ( pushd "%DestDir%")
  • 使用!而不是%因为延迟扩展开启,即pushd "!DestDir!"
  • 启动控制台窗口我以管理员身份从内部运行批处理文件

但是,当我不打开延迟扩展时,pushd会按预期工作。换句话说,在运行以下批处理文件之后

c:\windows无论在运行批处理文件之前我所在的目录如何,我都确实被传送到了。

我想我现在很傻,但我一辈子都无法解决这个问题。那么,pushd如果延迟扩展处于活动状态,任何人都可以解释为什么会失败吗?

0 投票
3 回答
1819 浏览

powershell - Powershell“不支持UNC路径”但我正在使用Push-Location

我在 powershell 中运行一个命令行程序,将我们的 \servername\files 文件夹作为运行文件夹。即使我使用的是 Push-Location(这是我在谷歌搜索时找到的唯一解决方案),我也会收到“不支持 UNC 路径”错误。给我这个错误的最简单的代码如下:

0 投票
1 回答
329 浏览

bash - 尝试使用 PUSHD/POPD 将脚本从 BASH 转换为 ZSH

我正在尝试将以下脚本从 BASH 转换为 ZSH,但 POPD 无法正常工作......有人可以帮帮我吗?

错误是这个

现在我知道这意味着什么,但我似乎无法修复它......我也在努力寻找有意义的修复。

如果我手动运行脚本,它似乎工作正常,但如果我通过调用 runMyScript 来运行它,那它似乎就失败了。

有人可以帮帮我吗?

0 投票
1 回答
640 浏览

python - 在python中实现pushd

我试图了解以下是如何实现 Unix 命令 pushd 的。具体来说,鉴于它不产生任何结果,因此 yield 命令的目的是什么。

根据维基百科,“pushd 命令将当前工作目录保存在内存中,因此可以随时返回,可选择更改为新目录”。此代码块的哪一部分执行此定义中的哪些功能?

0 投票
0 回答
39 浏览

linux - 在 linux bash 脚本中,>> 在 pushd 命令中做了什么?

我是学习 bash 脚本的新手,我对以下代码感到困惑:

我知道什么pushdpopd是,但是>>这些行的效果是什么?