使用rsync删除单个文件

dir*_*ide 15 rsync

文件foo.txt存在于远程计算机上:/home/user/foo.txt

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

我想使用rsync删除foo.txt.

我不知道(并且为了这个问题的目的而假设我无法找到)本地或远程机器上/ home/user中的其他文件,所以我不能只是同步整个目录.

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

Dav*_*d Z 29

试试这个:

rsync -rv --delete --include=foo.txt '--exclude=*' /home/user/ user@remote:/home/user/
Run Code Online (Sandbox Code Playgroud)

(强烈建议--dry-run首先运行测试)虽然看起来使用ssh会更容易...

ssh user@remote "rm /home/user/foo.txt"
Run Code Online (Sandbox Code Playgroud)


let*_*bee 5

这有点微不足道,但如果像我一样,你来到这个页面寻找一种方法来使用rsync从远程服务器删除目录的内容,这就是我这样做的方法:

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

    mkdir mock

  2. 与之同步:

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

  3. --dry-run从上面的行中删除实际做的事情.

  • 如果使用“-a”,则隐含“-r”。"-a" = "-rlptgoD" <另见:http://rsync.samba.org/ftp/rsync/rsync.html> (3认同)