Você deseja renomear o original /bar/baz/myfile.xt
as /bar/baz/myfile.xt~
ou, melhor ainda, com um sufixo de contador ou data.
Você não pode fazer isso diretamente com scp
, mas aqui estão algumas alternativas ao seu comando original.
-
Usando
rsync
rsync -ab myfile.ext [email protected]:/bar/baz
O
-b
sinalizador diz aorsync
para fazer um backup se houver uma alteração no arquivo de destino. O padrão é anexar~
, mas você pode alterar esse padrão. Por exemplo, isso usará a data de hoje (conforme definido na máquina de origem):rsync -ab --suffix ".$(date +'%Y%m%d')" myfile.ext [email protected]:/bar/baz
-
Usando
ssh
comscp
. Eu assumi quebaz
é o nome do arquivo de destino em vez de um diretório no qual o arquivo de origem deve ser copiado:ssh [email protected] 'cp -p /bar/baz /bar/baz."$(date +'%Y%m%d')"' && scp -p myfile.ext [email protected]:/bar/baz
Você poderia usar
mv
em vez decp
, se preferir, mas isso perderia as permissões não padrão e os links para arquivos no arquivo de destino verdadeiro.
A opção rsync
é mais limpa, mas nem sempre é instalada.