Linux, эквивалентный robocopy?

Это довольно забавно, существует много путей, которыми инструменты командной строки Linux значительно превосходят Windows, но одной вещью, которой я не нашел эквивалент, является robocopy. Robocopy является путем, более универсальным, чем cp, и я не могу выяснить, как сделать то, что я хочу с инструментами Linux.

Определенный вариант использования - то, что у меня есть два каталога с главным образом подобными файлами, но у каждого есть более новые исходные файлы, и у каждого есть файлы содержания, которые другой каталог не имеет, и возможно более новые исходные файлы (для веб-сайта). Я хочу скопировать файлы с последнего каталога в первого, добавляя новые файлы содержания и такой, но не перезаписывая более новые файлы в целевом каталоге.

Я пытался выяснить, как сделать это в Linux в течение, возможно, получаса, решил, что я должен буду, вероятно, изучить сценарии удара или что-то, чтобы сделать то, что я хотел, и затем я понял, что мог просто использовать robocopy. У меня также были некоторые другие требования. Я в основном преобразовывал Python (Django) веб-сайт от репозитория SVN до репозитория Мерзавца, и я хотел удостовериться, что у меня не было незафиксированных изменений в SVN. Однако я хотел условно исключить .svn каталоги и .pyc скомпилированные файлы Python. Следующая команда robocopy делает точно, что я хочу:

robocopy source destination /XO /E /XD .svn /XF *.pyc

Действительно ли там кто-либо эквивалентен Robocopy в Linux? Я изучил rsync кратко, но казалось, что я должен буду настроить rsync сервер прежде, чем попытаться синхронизировать папки.

34
задан 20.07.2017, 23:31

2 ответа

Это кажется, что rsync определенно, что Вы после. Вы не должны настраивать 'rsync сервер' для копирования файлов от одной машины до другого. Rsync поддерживает копирование файлов по SFTP (Передача файлов SSH), который большинство полей Linux уже включило (если не вручную отключенный).

Посмотрите Зеркальные файлы Lifehacker через системы с rsync для получения дополнительной информации:

Хотите ли Вы скопировать свои данные, распределить файлы надежно или зеркально отразить Ваши рабочие документы по Интернету из офиса для размещения, между компьютерами в локальной сети, или от компьютера до веб-сервера, rsync мог сделать задание. Сегодня мы будем использовать rsync для зеркального отражения папок между Mac и ПК по безопасному соединению в командной строке.

Rsync свободен (как в речи) и кросс-платформенный, подразумевая, что он синхронизирует файлы между операционными системами (Windows/Cygwin, Mac OS, Linux); это работает по ssh, таким образом, это шифруется и безопасно; в отличие от FTP это является возрастающим, поэтому только части измененных файлов передаются, не целые файлы, который заставляет его пойти как Быстрый Gonzalez; и то, что это - командная строка, делает это scriptable и легко автоматизированным.

38
ответ дан 07.12.2019, 09:03

rsync скопирует файлы от одного каталога до другого каталога на той же машине как robocopy. Вот команда rsync, которая эквивалентна Вашей команде robocopy:

rsync -auv --exclude '.svn' --exclude '*.pyc' source destination

Это рекурсивно скопирует источник в место назначения и исключит более старые файлы, а также '.svn' и '*.pyc' каталоги/файлы.

15
ответ дан 07.12.2019, 09:03

Теги

Похожие вопросы