如何使scp复制隐藏文件?

我经常使用SCP来复制文件 – 尤其是与networking有关的文件。 问题是,只要我这样做,我不能得到我的命令来复制隐藏的文件(例如.htaccess)。

我通常会调用这个:

scp -rp src/ user@server:dest/ 

这不会复制隐藏的文件。 我不想再次调用这个(通过做类似于scp -rp src/.* ... ,而且这也有点奇怪。

我没有看到任何关于“包含隐藏文件”的scp手册页。

我怎样才能做到这一点?

  • 如何更快地复制200GB文件?
  • 用于SCP的Bash脚本 - SSH密钥
  • PuTTY pscp目录列表 - 你可以指定不同的文件date/时间格式?
  • 我可以scp文件夹有子文件夹吗?
  • 将大文件从一台Linux服务器复制到另一台
  • 在两台远程机器之间复制大文件 - 高效
  • 6 Solutions collect form web for “如何使scp复制隐藏文件?”

    这应该绝对匹配隐藏的文件。 源文件末尾的/表示“该目录下的每个文件”。 尽pipe如此,testing和研究却让你失望。 这是愚蠢的行为。

    “ 答案 ”是在源代码末尾添加一个点:

    scp -rp src/. user@server:dest/

    真正的答案是使用rsync。

    你可以尝试rsync。 这更适合这个工作:

    rsync -av src / user @ server:dest /

    (其手册页值得一读。)

    不要在源目录后面加一个斜杠。 你的代码看起来像这样:

     scp -rp src user@server:dest/ 

    这将在远程机器上的“dest”下创build一个目录“src”,并包含所有隐藏的文件。 这可能不是你想要的,但它会复制隐藏的文件在src中。

    以下将解决这个问题,这已经在我们的持续集成环境中进行了充分的testing

     scp -rp src/. user@server:dest/ example scp -rp /usr/src/code/. content001@172.11.11.11:/usr/dest/code/ 

    希望它有帮助

    上述的所有scp解决scheme都不适合我。 然而,我发现以下cygwin的工作:scp -r目录/ *主机:目录'*'匹配所有可见的文件,并跳过不可见。

    如果在远程机器上禁用密码login,并且唯一的login方式是通过公共密钥,那么你可以使用这个:

     $ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress user1@remote.host:/remote/source/directory/ /local/destination/directory/ 

    它也复制隐藏的文件。

    另外请注意,“user1”必须有权限读取这些文件,例如您不能使用此方法复制其他用户的ssh文件夹。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.