在 Bash 和类似的 shell 中,cd -
将当前目录更改为之前访问过的目录。这通常非常方便。我想知道是否有类似的复制或移动文件的简写,例如:
~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question
我也很高兴得到zsh
具体的答案。
答案1
如果您的 shell 有cd -
,那么它可能会具有特殊变量和/或您之前所在目录的$OLDPWD
快捷方式。~-
cp Makefile LICENSE "$OLDPWD/"
cp Makefile LICENSE ~-
cat ~-/Makefile
确实是 POSIX shell 语言(ksh/bash/zsh 就是基于此语言构建的)指定应该cd -
等于cd "$OLDPWD"
。
答案2
您可以随时使用shell 反引号。
它们的作用类似于子 shell:首先执行反引号中的命令,并将其输出作为主命令的参数放置。
~/folderA$ cd ../folderB
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"