Answers:
那应该绝对匹配隐藏文件。源代码末尾的/表示“此目录下的每个文件”。但是,测试和研究可以帮助您。这是愚蠢的行为。
“ 答案 ”是在源的末尾添加一个点:
scp -rp src/. user@server:dest/
在真正的答案是使用rsync。
scp -r source/ host:source2
复制点文件。从2007
.
由于安全问题,在末尾添加a 不再有效(2019)。这是在这里解释: superuser.com/questions/1403473/scp-error-unexpected-filename
您可以尝试rsync。它更适合此工作:
rsync -av src / user @ server:dest /
(其手册页值得一读。)
以下将解决问题,此问题已在我们的持续集成环境中进行了全面测试
scp -rp src/. user@server:dest/
example scp -rp /usr/src/code/. content001@172.11.11.11:/usr/dest/code/
希望能帮助到你
scp: error: unexpected filename: .
。一定要测试一下它是否适合您的发行版,其他Googler :)
要仅复制隐藏文件,请使用此命令
scp -rp /path_to_copy_hidden/.[!.]* user@host:/path_to_paste/
实际游戏是/.[!.]*
指以.
(隐藏)开头的文件的标签
如果在远程计算机上禁用了密码登录,并且唯一的登录方式是通过公共密钥,则可以使用以下方法:
$ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress user1@remote.host:/remote/source/directory/ /local/destination/directory/
它也复制隐藏文件。
还请注意,“ user1”必须具有读取这些文件的权限,例如,您不能使用此方法复制其他用户的ssh文件夹。
由于CVE-2018-20685漏洞,该/.
技巧不再可以与一起使用scp
。但是,像git
或Hg Mecurial 这样的分布式修订控制将像其他文件一样处理隐藏文件。这是我最喜欢的汞汞的命令:
server:$ sudo apt install mercurial
client:$ sudo apt install mercurial
client:$ hg init src
client:$ cd src/
client:$ hg addr
client:$ hg com -m "first commit"
client:$ cd
client:$ hg clone src ssh://user@server/dest/
随后的更改将需要使用再次提交client:$ hg com -m "commit message"
,然后使用client:$ hg push
命令进行推送。从此汞汞备忘单中了解更多有关推动变革的信息。
src/.*
也要复制src/..
(父目录),对吗?