Bash SCP 没有该文件或目录。

3
我正在使用这段代码将一个包含所有子目录的目录从远程服务器复制到本地磁盘。
scp -q -r userbane@ip:/var/myFolder /home/

它会复制除了2个文件之外的所有文件,这导致了错误的出现。
scp: /var/myFolder/file1.txt: No such file or directory
scp: /var/myFolder/file2.txt: No such file or directory

但是这两个文件确实存在。需要帮助吗?

你有阅读的权限吗? - CS Pei
你能在它们上面执行 ls -l 命令吗?它们有什么特殊之处吗(例如,我注意到路径不同)? - cnicutar
可以的,我能看懂它们。还有@cnicutar,抱歉那是个打字错误。这是我在文件上运行ls -l时得到的结果:lrwxrwxrwx - Matt
1个回答

4
I got this when I `ls -l` on the files `lrwxrwxrwx`
                                        ^

它们是符号链接。最有可能的是它们所指向的路径不可访问。


是的,没错。哇,我甚至看不到那些文件夹。我想我没有权限。那就是错误的原因了。谢谢。+1。但现在我能让scp命令只复制以“xml”结尾的文件吗? - Matt
你觉得 find ./ -iname '*.xml' | xargs scp_script.sh 怎么样?在你的 scp_script 中执行 shift; scp "$@" userbane@ip: - cnicutar
我不确定我理解xargs的作用,你说的shift是什么意思?(我是初学者)。另外,请不要忘记我有许多不同子目录中的xml文件(我需要递归复制,无论在哪里看到*.xml,都将其复制)。 - Matt
干得好!:D!! 它没有出现错误。但是我有两个小问题。1. rsync 在大多数 Linux 系统上是否默认安装?因为我正在为一个将在不同 Linux 上使用它的人构建这个项目。2. 虽然错误消失了,但该命令仍然在复制一些 *.cnf 文件!!!! - Matt
@Matin 嗯,rsync 并不是到处都可用的,所以你也需要考虑这一点。至于 .cnf 文件,我可能搞砸了 includeexclude 模式,所以你需要稍微调整一下它们。 - cnicutar
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接