有没有办法将scp
目录中的所有文件递归到远程机器并保留其原始文件名但不复制它所在的目录?
dir1/file
dir1/dir2/file2
所以dir1
只会复制的内容。dir1
不会被创建。该dir2
目录将在file2
内部创建。
我已经尝试过scp -r dir1 remote:/newfolder
,但它会dir1
在. 我不希望它创建该目录。只需将所有文件放入./newfolder
remote
dir1
dir1
newfolder
cd dir1
scp -r . remote:/newfolder
这避免了对远程机器上scp
的名称进行任何操作的机会。dir1
您可能还喜欢:
(cd dir1; scp -r . remote:/newfolder)
这会将您的 shell 留在其原始目录中,同时工作相同(因为它启动了一个执行cd
andscp
操作的子 shell)。
这意味着将 shell 扩展 dir1/* 生成的文件列表复制到远程位置 remote:/newfolder
scp -r dir1/* remote:/newfolder
您可以将点语法与相对路径一起使用。
scp -r dir1/. remote:/newfolder
如果远程目录不存在,则创建它。