147

我要做的是找到当前工作目录并将其保存到一个变量中,这样我就可以运行export PATH=$PATH:currentdir+somethingelse. 我不完全确定他们是否有一个默认包含 cwd 的变量。

如何使用 Bash 将当前目录保存在变量中?

4

9 回答 9

238

这会将当前工作目录的绝对路径保存到变量中cwd

cwd=$(pwd)

在你的情况下,你可以这样做:

export PATH=$PATH:$(pwd)+somethingelse
于 2012-11-07T17:34:37.147 回答
31

我的 .bash_profile 中有以下内容:

function mark {
    export $1=`pwd`;
}

所以任何时候我想记住一个目录,我都可以输入,例如标记那里

然后当我想回到那个位置时,我只需输入cd $there

于 2014-10-15T14:12:22.723 回答
6

当前工作目录变量,即完整路径 /home/dev/other

dir=$PWD

打印完整路径

echo $dir
于 2018-10-29T14:33:10.567 回答
5

对于一个相对的答案,使用.

测试:

$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir

第一个ls将显示当前目录中的所有内容,第二个将显示根目录 ( /) 中的所有内容。

于 2012-11-07T17:37:24.273 回答
5

你的作业有一个额外的$

export PATH=$PATH:${PWD}:/foo/bar
于 2012-11-07T20:54:16.927 回答
3

在 BASH shell 上,您可以非常简单地运行:

export PATH=$PATH:`pwd`/somethingelse

无需将当前工作目录保存到变量中...

于 2020-10-08T08:41:16.463 回答
0

另一种变体:

export PATH=$PATH:\`pwd`:/foo/bar
于 2013-11-08T08:34:11.013 回答
0

您可以使用 shell in-build variable PWD,如下所示:

export PATH=$PATH:$PWD+somethingelse
于 2017-02-17T07:47:29.257 回答
0

类似于mark通过一些变量检查的解决方案。此外,我更喜欢不使用$variable,而是使用我保存在下面的相同字符串

使用 save dir 保存您的文件夹/目录sdir myproject,然后使用 goto dir 返回该文件夹gdir myproject

另外检查本机的工作,pushd and popd他们将保存当前文件夹,这对于来回移动很方便。在这种情况下,您也可以使用popdaftergdir myproject并再次返回

# Save the current folder using sdir yourhandle to a variable you can later access the same folder fast using gdir yourhandle

function sdir {
    [[ ! -z "$1" ]] && export __d__$1="`pwd`";
}
function gdir {
    [[ ! -z "$1" ]] && cd "${!1}";
}

另一个方便的技巧是将两个 pushd/popd 和 sdir 和 gdir 组合起来,以便在 pushd 的 goto dir 函数中替换 cd。这使您在跳转到保存的文件夹时也可以飞回上一个文件夹。

# Save the current folder using sdir yourhandle to a variable you can later access the same folder fast using gdir yourhandle

function sdir {
    [[ ! -z "$1" ]] && export __d__$1="`pwd`";
}
function gdir {
    [[ ! -z "$1" ]] && pushd "${!1}";
}
于 2020-10-05T14:04:24.807 回答