Использование rsync для удаления одного файла
Файл foo.txt существует на удаленном компьютере по адресу:/home/user/foo.txt
Он не существует на локальной машине.
Я хочу удалить foo.txt с помощью rsync.
Я не знаю (и предполагаю для целей этого вопроса, что не могу узнать), какие другие файлы находятся в /home/user на локальных или удаленных компьютерах, поэтому я не могу просто синхронизировать весь каталог.
Какую команду rsync можно использовать для удаления foo.txt на удаленном компьютере?
Ответы
Ответ 1
Попробуйте следующее:
rsync -rv --delete --include=foo.txt '--exclude=*' /home/user/ [email protected]:/home/user/
(настоятельно рекомендуем запустить с --dry-run
сначала, чтобы проверить его) Хотя кажется, что было бы проще использовать ssh...
ssh [email protected] "rm /home/user/foo.txt"
Ответ 2
Это немного тривиально, но если, как и я, вы пришли на эту страницу в поисках способа удаления содержимого каталога с удаленного сервера с помощью rsync, я так и сделал:
-
Создайте пустую макетную папку:
mkdir mock
-
Синхронизировать с ним:
rsync -arv --delete --dry-run ~/mock/remote_server:~/dir_to_clean/
-
Удалите --dry-run
из строки выше, чтобы действительно сделать это.
Ответ 3
Как предложено выше, используйте --dry-run
для тестирования
rsync -rv --delete [email protected]:full/path/to/foo.txt
Ответ 4
Как предложено выше, используйте --dry-run
для проверки ранее. --delete
удаляет файлы в удаленном местоположении в соответствии с man-страницей rsync.
rsync -rv --delete [email protected]:full/path/to/foo.txt
Комментарий ниже о том, что этот список будет только неправильным. Для просмотра списка используйте только --list-only
и удалите --delete
.