【问题标题】:rsync command to delete a directory on a remote systemrsync 命令删除远程系统上的目录
【发布时间】:2020-03-04 06:20:53
【问题描述】:

有一个远程系统,我只有一个目录的读/写权限。我用它来存储每晚构建的结果。

为了上传特定日期的结果,我使用以下命令在远程目录上执行 rsync<date_dir>

rsync -zavR <date_dir> <server_name>:/path/of/the/directory/where/i/have/permission/

现在,有时我需要删除目的地的<date_dir> 目录。为此,我尝试了以下命令:

rsync -avh <date_dir> <server_name>:/path/of/the/directory/where/i/have/permission/ --delete

此命令删除目标<date_dir> 的内容,但目录<date_dir> 本身并未删除。

我也尝试在 rsync 命令中提供--force-delete,但它在我的系统上出现以下错误:

rsync: --force-delete: unknown option

使用rsync删除远程服务器上的<date_dir>目录的命令是什么。

PS:我尝试使用SSH 设置无密码身份验证,但我没有这样做的权限。

【问题讨论】:

    标签: linux bash shell unix rsync


    【解决方案1】:

    由于这是您要复制的目录,rsync 不会删除它。 --delete 表示删除发送方不存在的目录或文件。显然,date_dir 存在于您的本地计算机上(否则 rsync 会抱怨复制不存在的目录)。如果你想保留本地目录而只删除删除副本,rsync 不是正确的工具,但你可以使用rsh ..... rm -r 删除远程端的目录。

    【讨论】:

    • 我已经探索了sshpass,但它在我的系统上不可用,我也没有管理员权限来安装它。但是,我会检查rsh 是否有帮助。谢谢。
    • 还有一个想法 - 我不知道它是否可行:rsync --exclude date_dir --delete-excluded date_dir .....
    • @Yash : 阅读here,了解如何在没有 root 权限的情况下安装 Apt 包。
    • 我有fedora而不是ubuntu :(
    【解决方案2】:

    解决方案

    在给定的上下文中,以下命令适用于我:

    rsh <server_name> "rm -rf /path/of/the/directory/where/i/have/permission/<date_dir>"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多