Unter Linux können wir einfach Folgendes tun:
cp -pr directory
Wie mache ich das in Windows? Kann man das im Windows Explorer machen? Vorschläge für GUI-Tools?
Es wäre das Beste, wenn ich die NTFS-Berechtigungen und die Erstellungs- / Änderungs- / Zugriffszeit beibehalten könnte. Zumindest muss ich das Änderungsdatum für die Dateien und Verzeichnisse beibehalten . Die Kopie von Windows Explorer behält das Änderungsdatum für Verzeichnisse nicht bei.
windows
file-management
netvope
quelle
quelle
robocopy c:\folderA c:\folderB /mir /it
ist alles, was du brauchst. Beachten Sie, dass dadurch C: \ OrdnerB vollständig gelöscht und ein neues C: \ OrdnerB erstellt wird, das C: \ OrdnerA widerspiegelt.Antworten:
In Windows gibt es keine einfache Möglichkeit, dies zu tun. Es gibt mehrere Programme, die behaupten, die Erstellungsdaten von Dateien beibehalten zu können.
Hier sind einige Programme, die den Trick machen könnten: http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html (Defekter Link; nicht in der Wayback-Maschine).
Es ist nicht möglich, nur den Windows Explorer zu verwenden. Wenn Sie sich die Dokumentation für CopyFile, CopyFile-Funktion (winbase.h) ansehen , werden Sie feststellen , dass das Thema umgangen wird. Die CopyFile-Funktion (Windows Developer Preview) (ein 2012-Archiv mit derselben URL) sagt jedoch:
quelle
RoboCopy kann die Zeit für Verzeichnisse mit der Option / DCOPY: T beibehalten, dies funktioniert jedoch nur in Vista und neueren Versionen. Es können auch ACLs beibehalten werden. Alternativ kann FastCopy so konfiguriert werden, dass Verzeichniszeiten, ACLs und ADSs erhalten bleiben .
quelle
/mir
?/mir
Daten aus dem/dcopy:t
Zielordner entfernen, sondern auch Verzeichniszeiten und/copyall
mehr als nur die Dateizeitstempel beibehalten.... oder Sie können einfach ein Zip-Archiv erstellen (mit der Komprimierungsmethode "Speichern") und dann die Dateien entpacken, in die Sie sie kopieren möchten. Die Datums- / Uhrzeitattribute stimmen mit den Originaldateien überein.
quelle
Robocopy-Befehlszeilenprogramm (wird mit den meisten Windows-Versionen geliefert)
Auf meinem Windows 10-Computer befindet es sich unter
C:\Windows\System32
In Wikipedia kann es mit den folgenden Optionen verwendet werden, um Datei- und Verzeichniszeitstempel sowie andere Attribute beizubehalten:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
Beibehaltung der ursprünglichen Verzeichnis-Zeitstempel (erfordert Version XP026 oder höher)/E
: Verzeichnisse rekursiv kopieren, einschließlich leerer Verzeichnisse/R:0
: Gesperrte Dateien nicht wiederholen (der Standardwert für die Anzahl der Wiederholungsversuche bei fehlgeschlagenen Kopien beträgt 1 Million),/COPYALL
: Alle Dateiinformationen kopieren(entspricht
/COPY:DATSOU
, woD
= Daten,A
= Attribute,T
= Datei-Zeitstempel ,S
= Sicherheit = NTFS-ACLs,O
= Besitzerinfo,U
= Prüfungsinformationen),Wenn Sie nur Datum und Verzeichnis Zeitstempel erhalten wollen, aber tun nicht wollen leer Verzeichnisse kopiert und Sie nicht möchten , dass andere Attribute erhalten , dann können Sie verwenden:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
wo
/S
Kopien nicht leeren UnterverzeichnisseUm die vollständige Syntax anzuzeigen, geben Sie
robocopy /?
an einer Eingabeaufforderung Folgendes ein oder werfen Sie einen Blick auf die folgenden Blogeinträge: https://ss64.com/nt/robocopy.html und https://techjourney.net/robocopy-syntax-command-line -schalter-und-beispiele /Ein Beispiel für einen Befehl, den ich kürzlich ausgeführt habe:
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
Beachten Sie, dass beim Ausschließen von 2 Unterverzeichnissen das
/XD
Flag zweimal verwendet werden muss. Außerdem werden beim zweiten Verzeichnisausschluss Anführungszeichen verwendet, da der Verzeichnisname Leerzeichen enthält.Schließlich können Sie das
/L
Flag hinzufügen , um den Befehl zu testen, bevor Sie ihn für echt ausführen. Auf diese Weise können Sie sicherstellen, dass keine Verzeichnisse / Dateien kopiert (oder entfernt) werden, die Sie nicht möchten, und dass Ihr Befehl keine Fehler enthält.Edit: gotcha beim Kopieren von einem Root-Verzeichnis (aka Laufwerk) in einen Ordner (Nicht-Root-Verzeichnis)
Nach dem Ausführen des obigen Beispielbefehls war das Verzeichnis nicht sichtbar! (Auch wenn
show hidden files
undshow system files
wurden in Windows 10 überprüft!) Der folgende Befehl gemäß https://serverfault.com/a/455029/399723 behebt dies:Alternativ kann durch Hinzufügen der
/A-:SH
Option "Verborgenes Attribut aus Systemdateien entfernen" verhindert werden, dass das Verzeichnis zunächst ausgeblendet wird (siehe https://serverfault.com/a/565804/399723) . Siehe auch https://ss64.com/nt/robocopy.html .In dieser Beschreibung wird diese Option als Lösung näher erläutert .
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
Andere Software:
Alternativ können Sie eine GUI-Version von robocopy herunterladen, wenn Sie die Befehlszeile nicht verwenden möchten.
Ein weiteres Windows-Dienstprogramm ist XCopy , obwohl es in Windows 10 enthalten ist, wird es nicht mehr empfohlen. Siehe den Link für Fallstricke.
Die Wikipedia-Seite für RoboCopy (oben in diesem Beitrag verlinkt) listet andere Software auf, die verwendet werden kann.
quelle
Synchronisiere es! 3.5 behält alle Zeitstempel (Dateien und Ordner, Änderung und Erstellung). Dies ist neben Robocopy die einzige Software, die ich unter Windows XP kenne, und ich habe viele ausprobiert. Beachten Sie jedoch, dass es zu fehlerhaften Dateien mit Quelldateien kommen kann, die mit Software wie FlashGet oder Orbit Downloader heruntergeladen wurden (die resultierenden Dateien haben dieselbe Größe, aber nur 25 KB werden tatsächlich kopiert - der Rest wird mit Nullen gefüllt). Ich fragte den Ersteller der Software, ob er herausfinden könne, warum, aber er hatte keine Ahnung. Ich vermute, es hat damit zu tun, dass solche Software Dateien in kleinen Paketen herunterlädt (um die Geschwindigkeit zu optimieren) und meine Datenpartition sehr fragmentiert ist.
Robocopy XP026 ist zwar in Windows Vista enthalten, funktioniert aber unter Windows XP. Suchen Sie nach "Robocopy XP026", oder ich kann die Datei hier senden, da sie nicht leicht zu finden ist. Sie können auch die Robocopy-GUI installieren und dann
robocopy.exe
im Ordner System32 nach der Datei suchen , um sie über die Befehlszeile zu verwenden. Die Datei, die ich habe, ist 208kB und die Versionsnummer ist 5.1.2600.26.Es scheint jedoch einen Fehler im "Backup-Modus" zu geben:
Die Robocopy-Version XP027 hat diesen Fehler anscheinend nicht mehr, funktioniert aber unter Windows XP nicht mehr.
quelle
RoboCopy sollte dies mit dem COPYALL-Schalter tun können. Sie können die GUI-Version von Microsoft Technet herunterladen .
quelle
FastCopy kann dies und ist kostenlos.
quelle
Ich bin nicht sicher, welcher Schalter das Dateidatum beibehält, aber das funktioniert. Dann komprimiere ich das Verzeichnis C: \ temp \ Pics, in dem auch die oben erwähnten Dateidaten gespeichert sind.
quelle
Der einfachste Weg für mich ist bisher die "send to" -Methode. Es werden keine externen Anwendungen benötigt. Nach meiner Erfahrung werden alle ursprünglichen Dateiattribute beibehalten.
Die Methode, die ich zuvor verwendet habe, war die Komprimierungs- / Zip-Ordner-Methode. Dies wird jedoch sicherlich länger dauern, da die Dateien nicht nur kopiert, sondern auch verarbeitet und komprimiert werden, sowohl beim Komprimieren als auch beim Dekomprimieren.
%appdata%\Microsoft\Windows\SendTo
oder.
C:\Users\_______\AppData\Roaming\Microsoft\Windows\SendTo
Fügen Sie dem Ordner, in den Sie sie kopieren möchten, eine Verknüpfung hinzu, und das Element wird in Ihrem
sendto
Menü angezeigt, wenn Sie mit der rechten Maustaste auf eine Datei klicken, die Sie kopieren möchten.quelle
xcopy Source Destination /kes
. (Mit demk
Flag kann der Änderungszeitstempel beibehalten werden, das Erstellungsdatum wird jedoch nicht beibehalten.) Die Komprimierungsmethode für zip (oder rar) ist eine gute Methode, dauert jedoch häufig zu lange.Es ist einfach, Ordner und Verzeichnisse zu verschieben und dabei das Erstellungsdatum beizubehalten. Halten Sie Shiftden Ordner einfach gedrückt und ziehen Sie ihn an den neuen Speicherort (Befehl zum Verschieben). Das Änderungsdatum ist das aktuelle Datum, aber das Erstellungsdatum behält das ursprüngliche Datum bei.
quelle
Verwenden Sie diese Dienstprogramme, um Ordner auf einfache Weise zu verschieben und Erstellungsdatum und -uhrzeit beizubehalten
http://lantechsoft.com/data-copy.html
Eine andere, bei der Daten beim Kopieren von Dateien erhalten bleiben.
http://technocomsolutions.com/data-copy-tool.html
quelle
xcopy funktioniert gut dafür. Geben Sie einfach das Flag / k an, um die Attribute zu kopieren.
Syntax
xcopy Quelle [Ziel] [Optionale Parameter]
Der Befehl xcopy kann eine oder mehrere Dateien oder Verzeichnisbäume von einem Speicherort an einen anderen kopieren. Der Befehl xcopy ist in allen Windows-Versionen von Windows 95 bis Windows 8 enthalten.
quelle
/K
Parameter ausprobiert und er hat die Erstellungsdaten nicht beibehalten.Das schaffe ich mit
rsync -avu --modify-window = 3602 Quellverzeichnis / Zielverzeichnis /
(Dies wird wirklich als Synchronisierungstool von einem Verzeichnis zu einem anderen Spiegel verwendet. Die Option timewindow dient dazu, Probleme zu vermeiden, wenn Windows-Systeme im Vergleich zu Linux-Systemen die Zeit um 1 Stunde verschieben, um Sommerzeit usw. zu sparen.)
in cygwin-umgebung innerhalb von windows oder einer virtuellen linux-maschine innerhalb von windows mit aktivierten windows-laufwerken (zb mit virtualbox)
NB cygwin und virtualbox sind beide kostenlos und ermöglichen es Ihnen, Linux-Funktionen unter Windows in geringerem oder größerem Umfang zu nutzen - beide erfordern ein wenig Einrichtung - insbesondere virtualbox, haben aber viele Vorteile.
Mein eigenes Problem war, dass Dateien die richtige Zeit haben, Verzeichnisse jedoch nicht. rsync hat die Daten in den Verzeichnissen sowie die Daten in den Dateien aussortiert.
quelle
Dieser Befehl kopiert den gleichen Zeitstempel für Dateien. Beachten Sie, dass für die Ordner selbst nicht genau dieselbe Zeitstempelung ausgeführt wird. Beachten Sie auch, dass ich die Quelle (Temp1) und das Ziel (Temp2) in Anführungszeichen gesetzt habe. Dies erfolgt für den Fall, dass die Pfade Leerzeichen enthalten. Ich habe keine Leerzeichen, aber ich dachte, ich sollte es für Worst-Case-Szenarien einschließen.
So behalten Sie die Zeitstempel auch für Ordner bei:
robocopy / E / copy: DAT / dcopy: DAT "C: \ Temp1" "c: \ Temp2"
quelle