Есть ли эквивалент cd - для cp или mv?

Есть ли эквивалент cd - для cp или mv?

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

Связанный контент