Aqui está uma solução alternativa, inspirada no comentário de @Stephen Harris:
# You can "copy" any number of files, then "paste", "move" or
# "pasteln" them to pass them as arguments to cp, mv, or ln
# respectively. Just like a graphical filesystem manager. Each of the
# latter three functions defaults to the current directory as the
# destination.
function copy() {
emulate -LR zsh
radian_clipboard=()
for target; do
radian_clipboard+=(${target:a})
done
}
function paste() {
emulate -LR zsh
cp -R $radian_clipboard ${1:-.}
}
function move() {
emulate -LR zsh
mv $radian_clipboard ${1:-.}
}
function pasteln() {
emulate -LR zsh
ln -s $radian_clipboard ${1:-.}
}
Exemplo de uso:
(autojump to first directory)
$ copy file.txt
(autojump to second directory)
$ paste copy.txt
Como você pode ver, esses aliases são muito finos em torno dos comandos cp
, mv
e ln -s
, então você também pode passar um diretório como segundo argumento ou copy
de vários arquivos ou diretórios de uma vez, ou omitir o segundo argumento para atuar no diretório atual.