代码之家  ›  专栏  ›  技术社区  ›  dirtside

使用rsync删除单个文件

  •  14
  • dirtside  · 技术社区  · 16 年前

    它在本地计算机上不存在。

    我想使用rsync删除foo.txt。

    我不知道(并且假设出于这个问题的目的,我无法找到)本地或远程计算机上的/home/user中还有哪些其他文件,因此我无法同步整个目录。

    什么 远程同步 我可以使用命令删除远程计算机上的foo.txt吗?

    2 回复  |  直到 16 年前
        1
  •  30
  •   David Z    16 年前

    试试这个:

    rsync -rv --delete --include=foo.txt '--exclude=*' /home/user/ user@remote:/home/user/
    

    --dry-run 首先对其进行测试)虽然使用ssh似乎更容易。。。

    ssh user@remote "rm /home/user/foo.txt"
    
        2
  •  6
  •   Clonkex    6 年前

    这有点琐碎,但如果像我一样,您来到此页面,寻找使用rsync从远程服务器删除目录内容的方法,我就是这样做的:

    1. 创建一个空的模拟文件夹:

      mkdir mock

    2. rsync -arv --delete --dry-run ~/mock/ remote_server:~/dir_to_clean/

    3. 去除 --dry-run

        3
  •  1
  •   ckujau    3 年前

    只是遇到了同样的问题,需要使用 rsync 要删除远程文件,请执行以下操作: 远程同步 并且不允许使用其他SSH命令。这个 --remove-source-files 期权(以前称为 --remove-sender-files )确实做到了:

    rsync -avPn --remove-source-files remote:/home/user/foo.txt .
    rm foo.txt
    

    与往常一样,拆下 -n 选项来真正执行此操作。

        4
  •  0
  •   Rogue    5 年前

    如上所述,使用 --dry-run --delete 根据rsync手册页删除远程位置上的文件。

    rsync -rv --delete user@hostname.local:full/path/to/foo.txt
    

    下面的评论指出,这将只列出是不正确的。仅列出使用 --list-only 移除 --删除 .