2017-03-07 70 views
2

我试图去到一个目录。PUSHD没有进入指定的目录

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

我试着做一些命令,如mkdir,看看它会在哪里创建。它在我称为脚本的目录中创建,而不是在pushd中指定的目录。

我如何得到这个工作?如何进入shell脚本中的特定目录,然后在该目录内执行命令?

在此先感谢。

+0

如果_directory_'〜/ mapTrials'不存在且无法创建'pushd'可能会失败。 (可能的原因:缺少创建目录的权限或_file_'〜/ mapTrials')实际上,'pushd'会打印一个错误。但是,您可以检查'$?'作为最后命令的结果。它不是0(在我的情况1),如果'pushd'失败。 – Scheff

+0

在过去,我们有这样奇怪的效果,因为我们使用NFS(在SGI/Irix和PC/Linux服务器的异构网络中)偶尔无法使安装的网络目录保持同步。但是这不应该成为现在一天的问题。 – Scheff

+0

@Scheff该函数的第一行确保该目录总是存在 – leoOrion

回答

2

我想我发现了错误:

pushd '~/MapTrial' 

单引号(以及双引号)防止~扩张。移动“蛇”,它应该工作。例如: -

pushd ~/'MapTrial' 

pushd ~/MapTrial 
+0

谢谢..'〜'/ MapTrial''没有工作,但没有任何引用推送'〜/ MapTrial' – leoOrion

+1

@leoOrion你是对的。我认为我知道了... - 这个引用非常强大,但是让我发疯(有时候)。 – Scheff

+0

@leoOrion对于我的运气,我回答了我在bash之前测试过的〜/'MapTrial''。 – Scheff