Использование rsync для удаления одного файла - PullRequest
14 голосов
/ 03 февраля 2009

Файл foo.txt существует на удаленном компьютере по адресу: /home/user/foo.txt

Он не существует на локальной машине.

Я хочу удалить foo.txt с помощью rsync.

Я не знаю (и предполагаю, что для целей этого вопроса я не могу выяснить), какие еще файлы находятся в / home / user на локальных или удаленных компьютерах, поэтому я не могу просто синхронизировать весь каталог.

Какую команду rsync можно использовать для удаления файла foo.txt на удаленном компьютере?

Ответы [ 2 ]

29 голосов
/ 03 февраля 2009

Попробуйте это:

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

(настоятельно рекомендуем сначала запустить --dry-run, чтобы проверить его) Хотя кажется, что было бы проще использовать ssh ...

ssh user@remote "rm /home/user/foo.txt"
6 голосов
/ 17 октября 2011

Это немного тривиально, но если, как и я, вы пришли на эту страницу в поисках способа удаления содержимого каталога с удаленного сервера с помощью rsync, я так и сделал:

  1. Создать пустую макетную папку:

    mkdir mock

  2. Синхронизация с ним:

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

  3. Удалите --dry-run из строки выше, чтобы действительно сделать это.

...