Первый файл в алфавитном порядке не копируется с помощью rsync

Первый файл в алфавитном порядке не копируется с помощью rsync

Я использую следующую команду для создания полной рекурсивной копии содержимого одного каталога в другой:

rsync -avzhe /path1/to1/dir1/* /path2/to2/dir2/

Работает так, как я и ожидал, за исключением того, что первый файл (в алфавитном порядке), будь то каталог или файл, не копируется. Все остальные файлы копируются. Почему?

Если это имеет значение, у меня MacOS 10.14.6.

решение1

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

решение2

Чтобы сделать полную копию каталога /path1/to1/dir1с именем /path2/to2/dir2, используйте

rsync -av /path2/to1/dir1/ /path2/to2/dir2

Нет смысла использовать сжатие ( -z) для локальной копии. -eПараметр указывает команду, используемую для установления сетевого соединения (именно поэтому ваша команда не может скопировать первый файл; rsyncиспользует его как аргумент параметра для -eпараметра), поэтому его также следует удалить в этом сценарии.

Также не используйте *в конце исходного пути, так как это обычно не будет соответствовать никаким скрытым именам. Подстановка всех имен ниже dir1может также потенциально расширить список до слишком длинного для того, чтобы команда могла вообще выполниться.

Просто убедитесь, что исходный путь заканчивается косой чертой. Косая черта в конце целевого пути не имеет значения. Удаление косой черты из исходного пути скопирует dir1внутрь dir2. Косая черта в конце исходного пути создает dir2копию dir1.

Помимо этого, вы можете использовать его, -Hчтобы убедиться, что жесткие ссылки установлены правильно в месте назначения, а также --sparseесли вы знаете, что копируете файлы, которые могут быть разреженными (например, предварительно выделенные образы дисков).

Используйте --deleteтакжеудалитьЗаписи из назначения, которое не является частью иерархии исходного файла. Используйте это с осторожностью. Вы можете сначала выполнить тестовый запуск с -n( --dry-run).

Связанный контент