На Linux мы можем просто сделать:
cp -pr directory
Как это сделать в Windows? Это можно сделать в проводнике Windows? Любые предложения инструмента GUI?
Было бы лучше, если бы я мог сохранить разрешения NTFS и время создания / изменения / доступа. Как минимум, мне нужно сохранить дату изменения для файлов и каталогов. Копия проводника Windows не сохраняет дату изменения для каталогов.
windows
file-management
netvope
источник
источник
robocopy c:\folderA c:\folderB /mir /it
это все, что тебе нужно. Обратите внимание, что это полностью удалит папку c: \ folderB и создаст новую папку c: \ folderB, которая отражает папку c: \ folderA.Ответы:
Там нет простого способа сделать это в Windows. Есть несколько программ, которые утверждают, что могут сохранять даты создания файлов.
Вот несколько программ, которые могли бы сделать трюк http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html (Неработающая ссылка; не в Wayback Machine).
Используя только Windows Explorer, это невозможно. Если вы посмотрите документацию для CopyFile, функцию CopyFile (winbase.h) , то увидите, что она избегает темы. Но функция CopyFile (Windows Developer Preview) (архив 2012 года с тем же URL) говорит:
источник
RoboCopy может сохранить mtime для каталогов с параметром / DCOPY: T, но это работает только в Vista и новее. Это может также сохранить ACL. В качестве альтернативы FastCopy можно настроить для сохранения каталогов mtimes, ACL и ADS .
источник
/mir
?/mir
данные удаляются из папки назначения, вам все еще нужно/dcopy:t
было сохранить mtimes каталога и/copyall
сохранить больше, чем просто временные метки файла.... или вы можете просто сделать zip-архив (с методом сжатия, установленным на "Store"), а затем распаковать файлы, куда вы хотели их скопировать. Атрибуты даты / времени совпадают с исходными файлами.
источник
Инструмент командной строки Robocopy (поставляется с большинством версий Windows)
На моем компьютере с Windows 10 он находится по адресу
C:\Windows\System32
Из Википедии его можно использовать со следующим набором параметров для сохранения временных меток файлов и каталогов, а также других атрибутов:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
сохранить временные метки оригинальных каталогов (требуется версия XP026 или новее)/E
: Рекурсивное копирование каталогов, включая пустые каталоги/R:0
: не повторять заблокированные файлы (количество повторных попыток для неудачных копий по умолчанию равно 1 миллиону),/COPYALL
: Скопировать всю информацию о файле,(эквивалентно
/COPY:DATSOU
, гдеD
= Данные,A
= Атрибуты,T
= Метки времени файла ,S
= Безопасность = NTFS ACL,O
= Информация о владельце,U
= Информация аудита),Если вы хотите сохранить только метки даты и времени каталога, но не хотите копировать пустые подкаталоги и не хотите сохранять другие атрибуты, вы можете использовать:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
где
/S
копирует непустые подкаталогиЧтобы увидеть полный синтаксис, введите
robocopy /?
в командной строке или посмотрите на следующие сообщения в блоге: https://ss64.com/nt/robocopy.html и https://techjourney.net/robocopy-syntax-command-line -switches-и-примеры /Пример команды, которую я недавно выполнил:
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Обратите внимание, что исключение 2 подкаталогов требует, чтобы
/XD
флаг использовался дважды. Кроме того, второе исключение каталога использует кавычки, потому что в имени каталога есть пробелы.Наконец, вы можете добавить
/L
флаг для проверки команды, прежде чем делать это по-настоящему. Таким образом, вы можете убедиться, что он не будет копировать (или удалять) любые каталоги / файлы, которые вам не нужны, и что в вашей команде нет ошибок.Редактировать: поймал при копировании из корневого каталога (он же диск) в папку (не корневой каталог)
После запуска приведенной выше команды, каталог не был виден! (Хотя в Windows 10
show hidden files
иshow system files
были проверены!) Следующая команда в соответствии с https://serverfault.com/a/455029/399723 исправила это:Кроме того, добавление
/A-:SH
«удаляет скрытый атрибут из системных файлов», таким образом, может помешать скрытию каталога, в первую очередь, согласно https://serverfault.com/a/565804/399723 . Смотрите также https://ss64.com/nt/robocopy.html .Это обсуждение проливает больше света на этот вариант в качестве решения.
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Другое программное обеспечение:
Кроме того, вы можете загрузить версию robocopy с графическим интерфейсом, если вы не хотите использовать командную строку.
Другая утилита для Windows - это XCopy , хотя она включена в Windows 10, но она устарела. Смотрите ссылку для получения.
На странице Википедии для RoboCopy (ссылка вверху этого поста) перечислены другие программы, которые можно использовать.
источник
Синхронизируйте это! 3.5 сохраняет все метки времени (файлы и папки, их модификация и создание). Это единственное программное обеспечение, которое я знаю в Windows XP, которое делает это безупречно, кроме Robocopy, и я пробовал много. Однако следует помнить, что он может создавать поврежденные файлы с исходными файлами, загруженными с помощью программного обеспечения, такого как FlashGet или Orbit Downloader (результирующие файлы имеют тот же размер, но фактически копируются только 25 КБ - остальное заполнено нулями). Я спросил создателя программного обеспечения, может ли он выяснить почему, но он понятия не имел; Я предполагаю, что это связано с загрузкой файлов такого программного обеспечения небольшими пакетами (предназначенными для оптимизации скорости), а мой раздел данных сильно фрагментирован.
Robocopy XP026 действительно включен в Windows Vista, но работает в Windows XP. Поиск "Robocopy XP026", или я могу отправить файл здесь, так как это не очень легко найти. Или вы можете установить Robocopy GUI, а затем
robocopy.exe
выполнить поиск файла в папке System32, чтобы использовать его из командной строки. У меня есть файл 208 КБ, а номер версии 5.1.2600.26.Кажется, есть ошибка с «режимом резервного копирования», хотя:
Robocopy версия XP027, по-видимому, больше не имеет этой ошибки, но она не работает в Windows XP.
источник
RoboCopy должен быть в состоянии сделать это с помощью переключателя COPYALL. Вы можете получить версию GUI от Microsoft Technet .
источник
FastCopy может сделать это, и это бесплатно.
источник
Я не уверен, какой переключатель поддерживает дату файла, но это работает. Затем я заархивирую каталог C: \ temp \ Pics, который также поддерживает даты файлов, как упоминалось ранее.
источник
На данный момент самый простой способ для меня - это метод «отправить». Не требует никаких внешних приложений. По моему опыту, он сохраняет все исходные атрибуты файла.
Метод, который я использовал ранее, был методом сжатия / папок zip. Хотя это, безусловно, займет больше времени, поскольку файлы не только копируются, но и обрабатываются и сжимаются, как при сжатии, так и при распаковке.
%appdata%\Microsoft\Windows\SendTo
или.
C:\Users\_______\AppData\Roaming\Microsoft\Windows\SendTo
Добавьте ярлык в папку, в которую вы хотите их скопировать, и элемент появится в вашем
sendto
меню, когда вы щелкните правой кнопкой мыши файл, который хотите скопировать.источник
xcopy Source Destination /kes
. (k
Флаг позволяет сохранить метку времени модификации, но дата создания не сохраняется). Метод сжатия в zip (или rar) является хорошим методом, но часто занимает слишком много времени.Перемещать папки и каталоги просто, сохраняя дату создания. Просто удерживайте Shiftи перетащите папку в новое место (команда перемещения). Дата изменения будет текущей датой, а дата создания будет сохранять первоначальную дату.
источник
Простой способ перемещения папок и сохранения даты создания и времени использования этих утилит
http://lantechsoft.com/data-copy.html
Еще один, где он может сохранить даты при копировании файлов.
http://technocomsolutions.com/data-copy-tool.html
источник
xcopy отлично работает для этого. Просто укажите флаг / k для копирования атрибутов.
Синтаксис
xcopy Source [Destination] [Необязательные параметры]
Команда xcopy может копировать один или несколько файлов или деревьев каталогов из одного места в другое. Команда xcopy включена во все версии Windows от Windows 95 до Windows 8.
источник
/K
параметр, и он не сохранил даты создания.Я достигаю этого с
rsync -avu --modify-window = 3602 исходный_каталог / целевой_каталог /
(это действительно используется в качестве инструмента синхронизации из одного каталога в другое зеркало, и опция временного окна - предотвращение проблем, когда системы Windows перемещают часы на 1 час для перехода на летнее время и т. д. по сравнению с системами Linux)
либо в среде Cygwin внутри Windows, либо в виртуальной машине Linux внутри Windows с установленными дисками Windows (например, с VirtualBox)
NB cygwin и virtualbox оба бесплатны и позволяют вам в большей или меньшей степени использовать функциональность linux на windows - они оба требуют небольшой настройки - особенно virtualbox, но имеют много преимуществ ....
Моя собственная проблема заключалась в том, что файлы имеют правильное время, а каталоги - нет. rsync отсортировал даты в каталогах, а также даты в файлах.
источник
Эта команда копирует ту же метку времени для файлов. Обратите внимание, что это не делает точно такую же отметку времени для самих папок. Также обратите внимание, что я поместил кавычки вокруг источника (Temp1) и места назначения (Temp2). Это делается в случае, если в путях есть пробелы. У меня нет пробелов, но я подумал, что должен включить его в худших случаях.
Чтобы сохранить временные метки для папок также:
robocopy / E / copy: DAT / dcopy: DAT "C: \ Temp1" "c: \ Temp2"
источник