Я пытаюсь скопировать SOURCE в DESTINATION, чтобы DESTINATION была идентична SOURCE.
Обратите внимание, что SOURCE - это 89 ГБ с 26 тыс. файлов и сотнями папок, поэтому нецелесообразно делать полную копию, когда изменились только 5 или 10 файлов.
Я понимаю, что можно использовать приложение для инкрементного резервного копирования, но мне нужно, чтобы файлы были непосредственно доступны и редактируемы, поскольку место назначения - это жесткий диск USB, подключенный к другому компьютеру (также работающему под управлением Ubuntu).
Я пробовал множество вариантов следующего, но не могу заставить его работать. Он либо не пересматривает подкаталоги, либо не определяет измененные файлы. В большинстве случаев процессор возвращается к открытой командной строке, как будто он только что успешно завершил операцию.
Я подумал, что проблема может быть связана с именами папок и файлов, которые содержат пробелы. Если бы я создавал эти папки и файлы, я бы использовал _
вместо " "
, но это не вариант. Все файлы можно использовать в приложениях Ubuntu. Я использовал переключатель -v
, но ничего не печатается.
В Ubuntu 20.04 я ввожу следующее в каталоге SOURCE:
cp "*.*" -i -r -u -v /media/kevin/'MyDocs Backup'/Documents
Я также пробовал использовать явное SOURCENAME, но это дает еще меньше результата.
Если это поможет передать мой вопрос, эквивалент XCOPY из каталога:
XCOPY "*.*" K:\Documents /d /s /c
Используйте rsync
:
Rsync - это быстрый и чрезвычайно универсальный инструмент для копирования файлов. Он может копировать локально, на / с другого хоста через любую удаленную оболочку или на / с удаленного демона rsync. Он предлагает большое количество опций, которые контролируют каждый аспект его поведения и позволяют очень гибко определять набор копируемых файлов. Он известен своим алгоритмом дельта-передачи, который уменьшает объем данных, отправляемых по сети, отправляя только различия между исходными файлами и существующими файлами в месте назначения. Rsync широко используется для резервного копирования и зеркалирования, а также в качестве улучшенной команды копирования для повседневного использования.
rsync -av SOURCE DESTINATION
-a
означает «режим архивации», который представляет собой совокупность нескольких других опций
«режим архива [...] гарантирует, что символические ссылки, устройства, атрибуты, разрешения, права собственности и т. Д. Сохраняются в передача. ")
-v
означает" подробный ", поэтому мы видим статус на терминале, что было скопировано.
Дополнительные сведения и параметры см. В man rsync
.
Обратите внимание на разницу между SOURCE
и SOURCE /
:
Завершающая косая черта на источнике изменяет это поведение, чтобы избежать создания дополнительного уровня каталога в месте назначения. Вы можете рассматривать конечный / в источнике как означающий «копировать содержимое этого каталога», а не «копировать каталог по имени»