将文件复制到以前访问过的目录的bash技巧

将文件复制到以前访问过的目录的bash技巧,bash,copy,environment-variables,Bash,Copy,Environment Variables,下面是一个场景 您在bash :~/dirA$cd/dirb :/dirb$cp filex这里\u我\u想要\u技巧\u到\u参考\u dirA 类似技巧的示例是cd-,它将您放入以前访问过的目录中 我想这样做是因为,在现实中,我正在处理的道路是巨大的,我正在寻找一条捷径 此外,处理此问题的技巧: :一张$cd x :x$cd y 等等 :y$cp文件\u参考\u至\u原始\u目录\u a 我正在寻找一种干扰最小的方法来实现这一点,如果第二部分没有太多的恶作剧是不可行的,那么它可能不值

下面是一个场景

您在
bash

:~/dirA$cd/dirb
:/dirb$cp filex这里\u我\u想要\u技巧\u到\u参考\u dirA
类似技巧的示例是
cd-
,它将您放入以前访问过的目录中

我想这样做是因为,在现实中,我正在处理的道路是巨大的,我正在寻找一条捷径

此外,处理此问题的技巧:

:一张$cd x
:x$cd y
等等


:y$cp文件\u参考\u至\u原始\u目录\u a
我正在寻找一种干扰最小的方法来实现这一点,如果第二部分没有太多的恶作剧是不可行的,那么它可能不值得我使用

谢谢

只是更新-感谢您的回复


那一页描述了我正在选择的内容。它只是将别名添加到pushd解决方案的混合中。

使用
pushd
dirs
应该很容易做到这一点

您只需在要将文件复制到的目录中发出
pushd
命令,然后使用:

cp filex `dirs +1`
您可以找到关于这些内置命令的文档,以及用它们替换cd的别名示例。 例如:

alias cd='pushd '
alias cd-='popd'
alias cd--='popd -2'
alias cd---='popd -3'
alias d='dirs -v'
alias b='pushd +1'

您可以尝试使用$OLDPWD。该变量应包含您所处的最后一个目录的路径。

您可以编写自己的cd函数来存储要刻录到的目录,然后执行实际的cd。这个变量类似于LAST_CD_DIR。然后你可以在你调用的另一个函数中使用它来执行cp。在我的系统(Ubuntu)中有一个环境变量OLDPWD

如果它在您的系统上不同,您应该能够通过以下方法找到它

mkdir nonsense_dir
cd nonsense_dir
cd ..
set | grep nonsense_dir
希望在您的环境中没有太多的string\u dir实例,您可以很容易地发现它

哦,你可能也想删除这个目录

rmdir nonsense_dir

您可以使用~-代替OLDPWD,OLDPWD扩展为OLDPWD的值,如下所述:。减少击键次数…

我想这是一个教学解决方案:)这正是我认为必须存在的,但找不到它,谢谢,我使用pushd/popd,但我习惯性地不使用它来导航系统,通常是它的“cd”。您会在dirs输出上使用awk命令来获取引用吗?我想我可以将cd别名为pushd@Gush:
dirs-N
dirs+N
将分别从右侧或左侧获取列表中的第N个条目。不需要AWK。这就是我要做的。谢谢你的建议。看看环境是如何变化的很酷的技巧,如果我想到这一点,我会注意到旧的pwd-谢谢