Muitas, muitas vezes por dia, eu me vejo querendo copiar um ou dois arquivos de ~/src/some/path/or/other
e ~/src/some/different/path
na minha máquina local, para /srv/www/some/path/or/other
e /srv/www/some/different/path
respectivamente em um host de teste. Os dois caminhos são idênticos depois de ~ / src e / srv / www, respectivamente - embora, obviamente, eu geralmente omita o nome do arquivo no segundo argumento para scp, que eu uso atualmente.
O problema é que, com bastante frequência, deduro inteiramente a invocação do scp e copio o arquivo para o diretório errado, ou sobrescrevo um arquivo diferente porque a aba completa consegue me enganar. Eu poderia rsync minha árvore local inteira para o servidor através de ssh, mas às vezes eu não quero carregar a coisa toda ainda - apenas um arquivo específico.
Eu acho que o que eu quero é simples ferramenta CLI que me permite fazer (talvez com um pouco de configuração) o equivalente moral de:
jkg5150@dev-laptop:~/src/myproject$ funkytool path/to/file another/path/another-file mydevhost.mycompany.com
...e tem file
copiado para mydevhost.mycompany.com:/srv/www/myproject/path/to/
e another-file
copiado para mydevhost.mycompany.com:/srv/www/myproject/another/path/
.
Certamente há um truque que estou perdendo - ou devo apenas escrever um?
bash
(ou mesmosh
) Isso parece um script de shell bastante simples.Respostas:
Use o rsync com o
-R
opção. Dersync(1)
página man:fonte