2009-02-02 155 views
12

文件foo.txt的远程机器上存在:/home/user/foo.txt使用rsync删除单个文件

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

我想使用rsync删除foo.txt。

我不知道(并且出于这个问题的目的,我找不到)本地或远程机器上/ home/user中的其他文件是什么,所以我不能只同步整个目录。

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

回答

26

试试这个:

rsync -rv --delete --include=foo.txt '--exclude=*' /home/user/ [email protected]:/home/user/ 

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

ssh [email protected] "rm /home/user/foo.txt" 
+0

无法为此使用SSH。 (这是一个政策的事情,而不是技术的东西;)) – dirtside 2009-02-02 23:03:43

+0

另外: rsync:link_stat“/home/user/foo.txt”失败:没有这样的文件或目录(2) – dirtside 2009-02-02 23:06:37

6

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

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

    的mkdir模拟

  2. 同步与它

    rsync的-arv --delete --dry运行〜/模拟/ remote_server的:〜/ dir_to_clean/

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