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

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

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

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

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

есть ли эквивалент Robocopy в Linux? Я заглянул в rsync кратко, но мне казалось, что мне нужно настроить сервер rsync раньше попытка синхронизации папок.

13
задан JakeGould
03.12.2022 1:16 Количество просмотров материала 3395
Распечатать страницу

2 ответа

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

см Lifehacker зеркальные файлы в системах с rsync дополнительные сведения:

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

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

37
отвечен Josh Hunt 2022-12-04 09:04

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

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

это приведет к рекурсивному копированию источника в место назначения и исключению старых файлов, а также '.СВН' и '*.pyc ' каталоги / файлы.

14
отвечен Sean Staats 2022-12-04 11:21

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх