我想用来scp移动一些文件并覆盖目标服务器上这些文件的任何现有实例。其中一些可能是只读的,当然,这些课程scp会因“许可被拒绝”而失败。我似乎找不到;的--force类型开关scp。这可能吗?
我知道,rsync但目前在目标服务器上不可用。
如果您没有写权限,则无法修改/覆盖任何文件,并且没有可能的scp选项可以更改它。
为了解决这个问题,您应该首先连接到服务器(ssh例如使用)并修改文件的权限。如果您不知道该怎么做,这里有一个简单的命令可以解决这个问题:
chmod +w /path/to/your/file
Run Code Online (Sandbox Code Playgroud)
一些注意事项:
这些文件是只读的可能是有原因的。在做任何事情之前,请确保您知道原因,并且更改此设置不会破坏任何内容或引入安全漏洞。
如有必要,您可以在执行命令后删除写入权限scp(使用:)chmod -w /path/to/file。
如果有太多具有只读权限的文件,则需要将它们找出来。find(至少大多数 Linux 发行版中可用的 GNU 版本)有一个-perm可以使用的测试(man find了解更多信息)。
有人可能会建议您以 root 身份连接或使用sudo. 它会起作用,但看在上帝的份上,不行。我无法告诉你这有多么错误。