我经常使用 SCP 复制文件 - 尤其是与网络相关的文件。问题是,每当我这样做时,我都无法使用命令来复制隐藏文件(例如 .htaccess)。
我通常会调用这个:
scp -rp src/ user@server:dest/
这不会复制隐藏文件。我不想再次调用它(通过执行类似操作- 而且这无论如何scp -rp src/.* ...
都有奇怪.
和隐含的含义。..
我在手册页中没有看到scp
有关“包含隐藏文件”的任何内容。
我怎样才能做到这一点?
答案1
这绝对应该匹配隐藏文件。源末尾的 / 表示“此目录下的每个文件”。然而,测试和研究证实了这一点。这是愚蠢的行为。
这 ”回答“是在源的末尾附加一个点:
scp -rp src/. user@server:dest/
这真实的答案是使用 rsync。
答案2
您可以尝试 rsync。它更适合这项工作:
rsync -av src/用户@服务器:目标/
(它的手册页值得一读。)
答案3
不要在源目录后面加斜线。您的代码将如下所示:
scp -rp src user@server:dest/
这将在远程机器的“dest”下创建一个目录“src”,其中包含所有隐藏文件。这可能不是您想要的,但它将复制 src 中的隐藏文件。
答案4
下面将解决这个问题,这已经在我们的持续集成环境中进行了充分的测试
scp -rp src/ user@server:dest/
example scp -rp /usr/src/code/ [email protected]:/usr/dest/code/
希望能帮助到你