bash - pushd 不进入指定目录

标签 bash shell directory pushd

我正在尝试使用 pushd 进入目录

 #!/bin/bash

 function cloneAll {
   [ -d ~/mapTrials ] || mkdir ~/mapTrials
   pushd '~/mapTrials/'
   echo $(pwd)
   popd
}

echo $(pwd) 为我提供了我从中调用脚本的相同工作目录。

我在其他 SO 答案中读到,pushd 仅适用于子进程,我必须为其创建别名。我也这样做过。

我尝试执行一些命令,如 mkdir 来查看它的创建位置。它是在我调用脚本的目录中创建的,而不是在 pushd 中指定的目录中创建的。

我如何让它工作?我如何进入 shell 脚本中的特定目录,然后在该目录中执行命令??

提前致谢。

最佳答案

我想我发现了错误:

pushd '~/MapTrial'

单引号(以及双引号)阻止了 ~ 的扩展。将“蛇”移出,它应该可以工作。例如:

pushd ~/'MapTrial'

pushd ~/MapTrial

关于bash - pushd 不进入指定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42642904/

相关文章:

c++ - 通过读取 C++ 中的 MFT 获取目录大小(如 TreeSize)

c# - 如何在不使用 try-catch 的情况下检查路径是否有效?

linux - Bash 脚本写入而不覆盖?

php - 在 Linux 中将 .PPT (2007-x) 转换为 JPEG/GIF

linux - 如何使用 awk 过滤文件并根据第二个字段 Linux 排序命令?

c++ - 如何使用纯 C++ 或 winapi 计算给定目录中的项目数?

bash - 如何抑制 grep 的输出?

bash - 我如何在 org babel 中加载 bash(而不是 sh)以启用 #+BEGIN_SRC bash?

linux - 在 bash 中操作字符串

python - 在 Linux 中使用已编译的 Python shell