scp 强制覆盖只读文件

Aar*_*ron 7 scp

我想用来scp移动一些文件并覆盖目标服务器上这些文件的任何现有实例。其中一些可能是只读的,当然,这些课程scp会因“许可被拒绝”而失败。我似乎找不到;的--force类型开关scp。这可能吗?

我知道,rsync但目前在目标服务器上不可用。

rah*_*hmu 3

如果您没有写权限,则无法修改/覆盖任何文件,并且没有可能的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. 它会起作用,但看在上帝的份上,不行。我无法告诉你这有多么错误。

  • 只要您对包含的目录具有写权限,您*可以*删除/重命名只读文件 - 例如 https://gist.github.com/4704937 (2认同)