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