9

有没有办法将scp目录中的所有文件递归到远程机器并保留其原始文件名但不复制它所在的目录?

dir1/file
dir1/dir2/file2

所以dir1只会复制的内容。dir1不会被创建。该dir2目录将在file2内部创建。

我已经尝试过scp -r dir1 remote:/newfolder,但它会dir1在. 我不希望它创建该目录。只需将所有文件放入./newfolderremotedir1dir1newfolder

4

3 回答 3

20
cd dir1
scp -r . remote:/newfolder

这避免了对远程机器上scp的名称进行任何操作的机会。dir1您可能还喜欢:

(cd dir1; scp -r . remote:/newfolder)

这会将您的 shell 留在其原始目录中,同时工作相同(因为它启动了一个执行cdandscp操作的子 shell)。

于 2012-07-21T18:33:09.027 回答
9

这意味着将 shell 扩展 dir1/* 生成的文件列表复制到远程位置 remote:/newfolder

scp -r dir1/* remote:/newfolder
于 2012-07-21T18:32:41.120 回答
1

您可以将点语法与相对路径一起使用。

scp -r dir1/. remote:/newfolder

如果远程目录不存在,则创建它。

于 2017-03-07T10:37:25.287 回答