在 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"