W systemie Linux możemy po prostu zrobić:
cp -pr directory
Jak to zrobić w systemie Windows? Czy można to zrobić w Eksploratorze Windows? Wszelkie sugestie dotyczące narzędzia GUI?
Byłoby najlepiej, gdybym mógł zachować uprawnienia NTFS i czas tworzenia / modyfikacji / dostępu. Co najmniej muszę zachować datę modyfikacji plików i katalogów. Kopia Eksploratora Windows nie zachowuje daty modyfikacji katalogów.
windows
file-management
netvope
źródło
źródło
robocopy c:\folderA c:\folderB /mir /it
to wszystko czego potrzebujesz. Zauważ, że spowoduje to całkowite usunięcie c: \ folder B i utworzenie nowego c: \ folder B, który będzie odzwierciedlał c: \ folder A.Odpowiedzi:
Nie ma prostego sposobu na zrobienie tego w systemie Windows. Istnieje kilka programów, które twierdzą, że są w stanie zachować daty utworzenia plików.
Oto kilka programów, które mogą rozwiązać ten problem http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html (uszkodzony link; nie w Wayback Machine).
Używanie tylko Eksploratora Windows nie jest możliwe. Jeśli spojrzysz na dokumentację dotyczącą funkcji CopyFile, CopyFile (winbase.h) , zobaczysz, że omija ona temat. Ale funkcja CopyFile (Windows Developer Preview) (archiwum 2012 tego samego adresu URL) mówi:
źródło
RoboCopy może zachować mtime dla katalogów za pomocą przełącznika / DCOPY: T, ale działa to tylko w systemie Vista i nowszych. Może także zachować listy ACL. Alternatywnie FastCopy można skonfigurować tak, aby zachowywał czasy katalogów, listy ACL i ADS .
źródło
/mir
?/mir
usuwa dane z folderu docelowego, ale nadal potrzebujesz,/dcopy:t
aby zachować czasy katalogów i/copyall
zachować więcej niż tylko sygnatury czasowe plików.... lub możesz po prostu utworzyć archiwum zip (z metodą kompresji ustawioną na „Store”), a następnie rozpakować pliki tam, gdzie chcesz je skopiować. Atrybuty daty / godziny są takie same jak oryginalne pliki.
źródło
Narzędzie wiersza polecenia Robocopy (dostarczane z większością wersji systemu Windows)
Na moim komputerze z systemem Windows 10 znajduje się on
C:\Windows\System32
Z Wikipedii można go używać z następującym zestawem opcji, aby zachować znaczniki czasu plików i katalogów, a także inne atrybuty:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
zachowaj oryginalne znaczniki czasu katalogów (wymaga wersji XP026 lub nowszej)/E
: Kopiuj katalogi rekurencyjnie, w tym puste katalogi/R:0
: nie ponawiaj prób zablokowanych plików (domyślna liczba ponownych prób nieudanych kopii wynosi 1 milion),/COPYALL
: Skopiuj wszystkie informacje o pliku(równoważne z
/COPY:DATSOU
, gdzieD
= Dane,A
= Atrybuty,T
= Znaczniki czasu pliku ,S
= Bezpieczeństwo = listy ACL NTFS,O
= Informacje o właścicielu,U
= Informacje kontrolne),Jeśli chcesz zachować tylko sygnatury czasowe daty i katalogu, ale nie chcesz kopiować pustych podkatalogów i nie chcesz zachowywać innych atrybutów, możesz użyć:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
gdzie
/S
kopiuje niepuste podkatalogiAby zobaczyć pełną składnię, wpisz
robocopy /?
w wierszu polecenia lub spójrz na następujące posty na blogu: https://ss64.com/nt/robocopy.html i https://techjourney.net/robocopy-syntax-command-line -włącza-i-przykłady /Przykład polecenia, które ostatnio uruchomiłem:
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
Zauważ, że wykluczenie 2 podkatalogów wymaga
/XD
dwukrotnego użycia flagi. Ponadto w drugim wykluczeniu katalogu używane są cudzysłowy, ponieważ w nazwie katalogu znajdują się spacje.Na koniec możesz dodać
/L
flagę, aby przetestować polecenie przed wykonaniem go naprawdę. W ten sposób możesz sprawdzić, czy nie kopiuje (ani nie usuwa) katalogów / plików, których nie chcesz, i że w poleceniu nie ma błędów.Edycja: gotcha podczas kopiowania z katalogu głównego (zwanego też dyskiem) do folderu (katalogu innego niż root)
Po uruchomieniu powyższej przykładowej komendy katalog nie był widoczny! (Choć
show hidden files
ishow system files
były sprawdzane w systemie Windows 10!) Następujące polecenie jako za https://serverfault.com/a/455029/399723 ustaloną w ten sposób:Alternatywnie, dodanie opcji
/A-:SH
„usuwa ukryty atrybut z plików systemowych”, może w ten sposób zapobiec ukryciu katalogu w pierwszej kolejności, zgodnie z https://serverfault.com/a/565804/399723 . Zobacz także https://ss64.com/nt/robocopy.html .Ta dyskusja rzuca więcej światła na tę opcję jako rozwiązanie.
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
Inne oprogramowanie:
Alternatywnie możesz pobrać wersję GUI robocopy, jeśli nie chcesz używać wiersza poleceń.
Innym narzędziem systemu Windows jest XCopy , chociaż jest on zawarty w systemie Windows 10, ale jest przestarzały. Zobacz link do gotchas.
Strona Wikipedii dla RoboCopy (link na górze tego postu) zawiera listę innych programów, których można użyć.
źródło
Synchronizuj to! 3.5 zachowuje wszystkie znaczniki czasu (pliki i foldery, modyfikacje i tworzenie). To jedyne oprogramowanie, jakie znam na Windows XP, które robi to bezbłędnie, oprócz Robocopy, i próbowałem wielu. Uważaj jednak, może generować uszkodzone pliki z plikami źródłowymi pobranymi za pomocą oprogramowania takiego jak FlashGet lub Orbit Downloader (pliki wynikowe mają ten sam rozmiar, ale w rzeczywistości kopiowane jest tylko 25kB - reszta jest wypełniona zerami). Zapytałem twórcę oprogramowania, czy może dowiedzieć się, dlaczego, ale nie miał pojęcia; Wydaje mi się, że ma to związek z tym, że oprogramowanie pobiera pliki w małych pakietach (mające na celu optymalizację prędkości), a moja partycja danych jest bardzo rozdrobniona.
Robocopy XP026 jest rzeczywiście zawarty w systemie Windows Vista, ale działa w systemie Windows XP. Wyszukaj „Robocopy XP026” lub mogę wysłać plik tutaj, ponieważ nie jest łatwo go znaleźć. Lub możesz zainstalować Robocopy GUI, a następnie wyszukać
robocopy.exe
plik w folderze System32, aby użyć go z wiersza poleceń. Plik, który mam, to 208kB, a numer wersji to 5.1.2600.26.Wygląda jednak na błąd w „trybie tworzenia kopii zapasowych”:
Wersja Robocopy XP027 najwyraźniej nie ma już tego błędu, ale nie działa w systemie Windows XP.
źródło
RoboCopy powinien móc to zrobić za pomocą przełącznika COPYALL. Możesz pobrać wersję GUI z Microsoft Technet .
źródło
FastCopy może to zrobić i jest bezpłatne.
źródło
Nie jestem pewien, który przełącznik utrzymuje datę pliku, ale to działa. Następnie spakuję katalog C: \ temp \ Pics, który również utrzymuje daty plików, jak wspomniano wcześniej.
źródło
Jak dotąd najprostszym sposobem dla mnie jest metoda „wyślij do”. Nie wymaga żadnych zewnętrznych aplikacji. Z mojego doświadczenia wynika, że zachowuje wszystkie oryginalne atrybuty pliku.
Metodą, której użyłem wcześniej, była metoda kompresji / zip. Chociaż z pewnością potrwa to dłużej, ponieważ pliki są nie tylko kopiowane, ale przetwarzane i kompresowane, zarówno podczas kompresji, jak i dekompresji.
%appdata%\Microsoft\Windows\SendTo
lub.
C:\Users\_______\AppData\Roaming\Microsoft\Windows\SendTo
Dodaj skrót do folderu, w którym chcesz je skopiować, a element pojawi się w
sendto
menu po kliknięciu prawym przyciskiem myszy pliku, który chcesz skopiować.źródło
xcopy Source Destination /kes
. (k
Flaga pozwala zachować znacznik czasu modyfikacji, ale data utworzenia nie jest zachowana). Metoda kompresji do zip (lub rar) jest dobrą metodą, ale często trwa zbyt długo.Przenoszenie folderów i katalogów jest proste, ale nadal zachowuje datę utworzenia. Po prostu przytrzymaj Shifti przeciągnij folder do nowej lokalizacji (polecenie przeniesienia). Data modyfikacji będzie datą bieżącą, ale data utworzenia zachowa pierwotną datę.
źródło
Prosty sposób na przenoszenie folderów i zachowanie daty i godziny utworzenia za pomocą tych narzędzi
http://lantechsoft.com/data-copy.html
Kolejny, w którym może zachować daty podczas kopiowania plików.
http://technocomsolutions.com/data-copy-tool.html
źródło
xcopy działa dobrze do tego. Wystarczy podać flagę / k, aby skopiować atrybuty.
Składnia
xcopy Źródło [Miejsce docelowe] [Parametry opcjonalne]
Polecenie xcopy może skopiować jeden lub więcej plików lub drzew katalogowych z jednej lokalizacji do drugiej. Polecenie xcopy jest zawarte we wszystkich wersjach systemu Windows od Windows 95 do Windows 8.
źródło
/K
parametr i nie zachował on dat utworzenia.Osiągam to dzięki
rsync -avu --modify-window = 3602 katalog_źródłowy / katalog_docelowy /
(jest to naprawdę używane jako narzędzie do synchronizacji z jednego katalogu do drugiego kopii lustrzanej, a opcja timewindow ma na celu zapobieganie problemom, gdy systemy Windows przesuwają zegary o 1 godzinę w celu oszczędzania światła dziennego itp. w porównaniu do systemów Linux)
w środowisku cygwin w systemie Windows lub na maszynie wirtualnej z systemem Linux w systemie Windows z zamontowanymi dyskami systemu Windows (np. z virtualbox)
NB zarówno cygwin, jak i virtualbox są bezpłatne i umożliwiają korzystanie z funkcji linux w mniejszym lub większym stopniu w systemie Windows - oba wymagają trochę konfiguracji - szczególnie virtualbox, ale mają wiele zalet ...
Mój własny problem polegał na tym, że pliki mają odpowiedni czas, ale katalogi nie. rsync uporządkował daty w katalogach oraz daty w plikach.
źródło
To polecenie kopiuje ten sam znacznik czasu dla plików. Pamiętaj, że nie robi dokładnie tego samego znacznika czasu dla samych folderów. Zauważ też, że umieściłem cudzysłowy zarówno w źródle (Temp1), jak i miejscu docelowym (Temp2). Odbywa się to w przypadku spacji na ścieżkach. Nie mam spacji, ale pomyślałem, że powinienem to uwzględnić w najgorszych przypadkach.
Aby zachować te same znaczniki czasu dla folderów:
robocopy / E / copy: DAT / dcopy: DAT "C: \ Temp1" "c: \ Temp2"
źródło