scp tem o argumento -r. Então, tente usar:
$ scp -r ~/local_dir [email protected]:/var/www/html/target_dir
O argumento -r funciona exatamente como o -r arg no cp, ele transferirá toda a pasta e todos os arquivos e subdiretórios contidos nela.
Meu objetivo é copiar somente todos os arquivos de ~ / local_dir para [email protected] / var / www / html / target_dir usando scp e não crie a categoria local_dir em local_dir.
/var/www/html/target_dir/files..
mas não
/var/www/html/target_dir/local_dir/files..
quando usar o parâmetro -r
scp tem o argumento -r. Então, tente usar:
$ scp -r ~/local_dir [email protected]:/var/www/html/target_dir
O argumento -r funciona exatamente como o -r arg no cp, ele transferirá toda a pasta e todos os arquivos e subdiretórios contidos nela.
Se seu objetivo for transferir todos os arquivos de local_dir
, o curinga *
fará o seguinte:
$ scp ~/local_dir/* [email protected]:/var/www/html/target_dir
A opção -r
significa "recursivamente", portanto você deve escrevê-la quando estiver tentando transferir um diretório inteiro ou vários diretórios.
De man scp
:
-r
Recursively copy entire directories. Note that scp follows symbolic links encountered in the tree traversal.
Portanto, se você tiver subdiretórios dentro de local_dir
, o último exemplo só transferirá arquivos, mas se você definir a opção -r
, ele transferirá arquivos e diretórios.
Acrescentar /.
ao seu diretório de origem irá transferir seu conteúdo em vez do próprio diretório. Em contraste com a solução curinga, isso também incluirá todos os arquivos ocultos.
$ scp -r ~/local_dir/. [email protected]:/var/www/html/target_dir
O crédito para esta solução vai para roaima, mas eu pensei que deveria ser postado como uma resposta real, não apenas um comentário.
Tags scp