Это довольно забавно, есть много способов, которыми инструменты командной строки Linux значительно превосходят инструменты Windows, но я не нашел эквивалента в Робокопии . Robocopy более универсален cp
, и я не могу понять, как делать то, что я хочу, с помощью инструментов Linux.
Конкретный вариант использования состоит в том, что у меня есть две директории с почти одинаковыми файлами, но одна имеет более новые исходные файлы, а другая содержит файлы содержимого, которых нет в другой директории, и, возможно, более новые исходные файлы (для веб-сайта). Я хочу скопировать файлы из последнего каталога в первый, добавив новые файлы содержимого и тому подобное, но не перезаписывая новые файлы в целевом каталоге.
Я попытался выяснить, как сделать это в Linux, возможно, на полчаса, решил, что мне, вероятно, придется изучать сценарии bash или что-то, чтобы делать то, что я хотел, и тогда я понял, что могу просто использовать robocopy. У меня также были некоторые другие требования. Я в основном конвертировал веб-сайт Python (Django) из репозитория SVN в репозиторий Git, и я хотел убедиться, что у меня не было внесенных изменений в SVN. Однако я хотел условно исключить .svn
каталоги и .pyc
скомпилированные файлы Python. Следующая команда robocopy делает именно то, что я хочу:
robocopy source destination /XO /E /XD .svn /XF *.pyc
Есть ли эквивалент Linux в Robocopy? Я rsync
кратко рассмотрел, но мне казалось, что мне нужно настроить сервер rsync, прежде чем пытаться синхронизировать папки.
Ответы:
Похоже, что rsync - это то, что вам нужно. Вам не нужно настраивать rsync-сервер для копирования файлов с одного компьютера на другой. Rsync поддерживает копирование файлов через SFTP (SSH File Transfer), который уже включен большинством Linux-коробок (если не отключен вручную).
Посмотрите Зеркальные файлы Lifehacker's в системах с rsync для более подробной информации:
источник
scp
подобный синтаксис для передачи по SSH? На самом деле я пытался передать файлы на одну машину, но это хорошо знать.rsync будет копировать файлы из одного каталога в другой каталог на том же компьютере, что и robocopy. Вот команда rsync, которая эквивалентна вашей команде robocopy:
Это рекурсивно скопирует источник в место назначения и исключит более старые файлы, а также каталоги / файлы '.svn' и '* .pyc'.
источник