Bashおよび類似のシェルではcd -
現在のディレクトリを以前にアクセスしたディレクトリに変更します。多くの場合、非常に便利です。次のように、ファイルをコピーまたは移動するための同様の省略形があるのだろうか?
~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question
zsh
の具体的な回答にも満足しています。
シェルにcd -
がある場合、特殊変数$OLDPWD
および/または以前に移動したディレクトリのショートカット~-
が含まれている可能性があります。
cp Makefile LICENSE "$OLDPWD/"
cp Makefile LICENSE ~-
cat ~-/Makefile
確かに、POSIXシェル言語(ksh/bash/zshが構築されている) 指定cd -
はcd "$OLDPWD"
と等しい必要があります。
いつでもShell backquotesを使用できます。
これらはサブシェルのように動作します。逆引用符内のコマンドが最初に実行され、その出力はメインコマンドの引数として配置されます。
~/folderA$ cd ../folderB
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"