是否有办法scp
递归到远程计算机的目录中的所有文件并保留其原始文件名但不复制它所在的目录?
dir1/file
dir1/dir2/file2
所以dir1
的内容只会被复制。不会创建dir1
。尽管如此,dir2
目录将在file2
内创建。
我已尝试scp -r dir1 remote:/newfolder
,但在dir1
的{{1}}目录中创建/newfolder
。我不希望它创建remote
目录。只需将dir1
内的所有文件放入dir1
。
答案 0 :(得分:19)
cd dir1
scp -r . remote:/newfolder
这样可以避免scp
在远程计算机上使用名称dir1
执行任何操作。您可能也更喜欢:
(cd dir1; scp -r . remote:/newfolder)
这使得shell保留在原始目录中,同时工作(因为它启动了执行cd
和scp
操作的子shell)。
答案 1 :(得分:9)
这意味着将shell扩展dir1 / *创建的文件列表复制到远程位置remote:/ newfolder
scp -r dir1/* remote:/newfolder
答案 2 :(得分:1)
您可以将点语法与相对路径一起使用。
<response>
<lst name="responseHeader"><int name="status">400</int><int name="QTime">111</int></lst><lst name="error"><lst name="metadata"><str name="error-class">org.apache.solr.common.SolrException</str><str name="root-error-class">org.apache.solr.common.SolrException</str></lst><str name=
"msg">ERROR: [doc=0553573403] unknown field 'cat'</str><int name="code">400</int></lst>
</response>
如果远程目录不存在,则会创建它。