Linuxでは、単純に次のことができます。
cp -pr directory
Windowsでそれをするには? Windowsエクスプローラでもできますか?任意のGUIツールの提案?
私がNTFSのアクセス許可と作成/変更/アクセス時間を保持できるのであれば、それは最高でしょう。少なくとも、私はファイルとディレクトリの変更日を保存する必要があります。 Windowsエクスプローラのコピーはディレクトリの変更日を保存しません。
これをWindowsで行う簡単な方法はありません。ファイルの作成日を保存できると主張するいくつかのプログラムがあります。
これは、うまくいく可能性のあるいくつかのプログラムです http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html
Windowsエクスプローラを使用するだけでは不可能です。 CopyFile( http://msdn.Microsoft.com/ja-jp/library/aa363851%28VS.85%29.aspx の資料を見れば - ))あなたはそれが言うのを見るでしょう:
この記事は、ファイルの作成/変更/アクセス時間に関するセマンティクスを文書化する必要があります。
作成時間:ターゲットファイルがすでに存在する場合はその作成時間が保持され、それ以外の場合は現在のシステム時間に設定されます。
最終更新日:常にソースファイルの更新時刻からコピーされます。
最終アクセス時間:常に現在のシステム時間に設定されます。
...またはZipアーカイブを作成し(圧縮方法を "Store"に設定)、コピーしたい場所にファイルを解凍します。日付/時刻属性は元のファイルと同じです。
Robocopyコマンドラインツール(ほとんどのバージョンのWindowsに付属)
私のwindows 10マシンではC:\Windows\System32
にあります
Wikipedia から、ファイルおよびディレクトリのタイムスタンプ、およびその他の属性を保持するために、次のオプションのセットと一緒に使用できます。
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
は元のディレクトリを保存ディレクトリのタイムスタンプ(バージョンXP026以降が必要)/E
:空のディレクトリも含めてディレクトリを再帰的にコピーする/R:0
:ロックされたファイルを再試行しません(失敗したコピーの再試行回数のデフォルト値は100万です)、
/COPYALL
:すべてのファイル情報をコピーする
(/COPY:DATSOU
と同等、ここで
D
=データ、A
=属性、T
=ファイルタイムスタンプS
=セキュリティ= NTFS ACLO
=所有者情報U
=監査情報)、onlyだけで日付とディレクトリのタイムスタンプを保存したいが、notとしたい場合は空のサブディレクトリを上書きコピーしてnot他の属性を保持したい場合は、次のようにします。Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
/S
は空ではないサブディレクトリをコピーします。
完全な構文を表示するには、コマンドプロンプトでrobocopy /?
を入力するか、次のブログ投稿をご覧ください。 https://ss64.com/nt/robocopy.html および https://techjourney.net/ robocopy構文コマンドラインスイッチと例/
最近実行したコマンドの例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
フラグを2回使用する必要があることに注意してください。また、ディレクトリ名にスペースがあるので、2のディレクトリ除外が引用符を使用します。
最後に、実際にコマンドを実行する前に、コマンドをテストするために/L
フラグを追加できます。これにより、不要なディレクトリやファイルがコピー(または削除)されず、コマンドにエラーがないことを確認できます。
上記のコマンド例を実行した後、ディレクトリは見えませんでした。 (Windows 10でshow hidden files
とshow system files
がチェックされていたとしても!) https://serverfault.com/a/455029/399723 として次のコマンドはこれを修正しました:
attrib -h -s C:\D_backup
または、/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
コマンドラインを使用したくない場合は、 GUIバージョンのrobocopy をダウンロードすることもできます。
もう一つのウィンドウズユーティリティは XCopy ですが、それはウィンドウズ10に含まれていますが、非推奨です。落とし穴のリンクを参照してください。
RoboCopyのウィキペディアのページ(この記事の先頭にリンクされています)には、使用可能な他のソフトウェアがリストされています。
同期します! 3.5はすべてのタイムスタンプ(ファイルとフォルダ、変更と作成)を保持します。 Robocopyの他に、それが私がWindows XPで知っている唯一のソフトウェアです、そして私は多くを試しました。ただし、FlashGetやOrbit Downloaderなどのソフトウェアを使用してソースファイルをダウンロードすると、破損したファイルが生成される可能性があります(結果ファイルのサイズは同じですが、実際には25kBのみがコピーされます - 残りはゼロで埋められます)。私はソフトウェアの作成者にその理由を理解できるかどうか尋ねましたが、その手がかりはありませんでした。私はそれがそのようなソフトウェアが小さいパケット(速度を最適化することを意図した)でファイルをダウンロードすることと私のデータパーティションが非常に断片化されていることに関係があると思います。
Robocopy XP026は確かにWindows Vistaに含まれていますが、Windows XP上で動作します。 "Robocopy XP026"を検索するか、見つけるのが簡単ではないので、ここにファイルを送ることができます。または、Robocopy GUIをインストールしてからSystem32フォルダーでrobocopy.exe
ファイルを検索し、コマンドラインから使用することもできます。私が持っているファイルは208kBで、バージョン番号は5.1.2600.26です。
ただし、「バックアップモード」にはバグがあるようです。
RobocopyバージョンXP027はもはやこのバグを抱えていないようですが、Windows XPでは動作しません。
RoboCopyはCOPYALLスイッチでそれを実行できるはずです。 GUIのバージョンは Microsoft Technet から入手できます。
FastCopy はこれができ、無料です。
私にとってこれまでの最も簡単な方法は、 "send to"メソッドです。外部アプリケーションは必要ありません。私の経験では、元のファイル属性をすべて保持しています。
私が以前に使用した方法は、圧縮/ Zipフォルダー方式でした。圧縮と解凍の両方の場合、ファイルがコピーされるだけでなく、処理と圧縮も行われるため、これには確かに時間がかかります。
%appdata%\Microsoft\Windows\SendTo
または。 C:\Users\_______\AppData\Roaming\Microsoft\Windows\SendTo
コピー先のフォルダにショートカットを追加すると、コピーしたいファイルを右クリックしたときにsendto
メニューに項目が表示されます。
xcopy *.* C:\temp\Pics /c /d /e /h /i /k /q /r /s /x /y
どのスイッチがファイルの日付を保持しているのかわかりませんが、これは機能します。それからC:\ temp\Picsディレクトリを圧縮します。このディレクトリにも前述のようにファイルの日付が保存されています。
私はこれを達成する
rsync -avu --modify-window = 3602 source_directory/target_directory /
(これは実際にはあるディレクトリから別のミラーへの同期ツールとして使用されており、WindowsシステムがLinuxシステムと比較して夏時間などのために1時間時計を移動するときの問題を防ぐためです
windows内のcygwin環境またはwindowsドライブを搭載したwindows内のlinux仮想マシン(例:virtualbox)
NB cygwinとvirtualboxはどちらも無料で、Windows上でLinuxの機能を多少なりとも拡張することができます - 両方ともセットアップが少し必要です。特にvirtualboxが、たくさんの利点があります。
私自身の問題は、ファイルには正しい時間があるがディレクトリにはないということでした。 rsyncはディレクトリの日付とファイルの日付を整理しました。
xcopyはこれのためにうまく働きます。属性をコピーするには、/ kフラグを指定するだけです。
構文
xcopyソース[宛先] [オプションのパラメータ]
Xcopyコマンドは、ある場所から別の場所に1つ以上のファイルまたはディレクトリツリーをコピーできます。 xcopyコマンドは、Windows 95からWindows 8までのすべてのバージョンのWindowsに含まれています。
このコマンドはファイルの同じタイムスタンプをコピーします。フォルダ自体にタイムスタンプを付けるのとまったく同じことはしません。また、送信元(Temp1)と送信先(Temp2)の両方を引用符で囲んだことにも注意してください。これはパスにスペースがある場合に行われます。スペースはありませんが、最悪の場合は含めるべきだと思いました。
robocopy /E /copy:DAT "C:\Temp1" "c:\Temp2"
タイムスタンプもフォルダで同じにするには:
robocopy/E /コピー:DAT/dcopy:DAT "C:\ Temp1" "c:\ Temp2"
フォルダを移動して作成日時を維持する簡単な方法は、これらのユーティリティを使用することです。
http://lantechsoft.com/data-copy.html
ファイルをコピーしている間日付を保存できるもう一つのもの。
フォルダとディレクトリを移動しても作成日を保持するのは簡単です。ただホールド Shift フォルダを新しい場所にドラッグします(移動コマンド)。更新日は現在の日付になりますが、作成日は元の日付のままになります。