【Windows】ファイルの作成日や更新日を含めてコピーする方法
-
カテゴリ:
- サーバ
-
タグ:
- #Windows
Linuxでは作業ファイルに対してバックアップを取るために、作成日や更新日を含めてコピーを取ることがあります。cpコマンドを使って「cp -p [コピー元] [コピー先]」で可能ですが、Windowsのコマンドプロンプトではどうやるのか、いろいろ調べたて試してみました。
cygwinのcpコマンドでは更新日までコピーできない
cygwinとはwindows環境にインストールすることで、LinuxのCUIのような形式でlinuxコマンドをwindows上で使えるようにするアプリです。
cygwinにもcpコマンド有りますが、「cp -p」を使ってコピーを試みたところ、作成日や更新日を含めてコピーすることはできませんでした。
どうやらcpコマンドをたたいていますが、結局裏側でwindowsのCOPYコマンドが実行されているっぽいです。
じゃあ他に方法はないのか。さらに調べたところ1つ方法が見つかりました。
「robocopy」を使う方法です。
robocopyを使う
robocopyコマンドは本来、データのバックアップのために使うコマンドであり、ファイル単体には使えず
2つのフォルダの内容を同期させるコマンドなので、コピー対象はフォルダである必要があります。コピー対象のフォルダの中身を丸々タイムスタンプも含めてコピーされます。
robocopyを使う前に、単純なコピーのやり方を結果を見てみましょう。
例1.単純なコピー(COPYコマンド)
C:\Users\user\Desktop\sample>copy sample01.txt sample02.txt
1 個のファイルをコピーしました。
C:\Users\user\Desktop\sample>dir /tc
ドライブ C のボリューム ラベルは Windows です
ボリューム シリアル番号は 88C5-3DE5 です
C:\Users\user\Desktop\sample のディレクトリ
2018/09/03 12:24 <DIR> .
2018/09/03 12:24 <DIR> ..
2018/09/03 12:25 12 sample01.txt
2018/09/03 12:37 12 sample02.txt
2 個のファイル 24 バイト
2 個のディレクトリ 161,810,702,336 バイトの空き領域
続いて「robocopy」を使った例です。
例2.robocopyを使った例
例1で作成したsampleフォルダをrobocopyを使ってコピーしてみます。
C:\Users\user\Desktop>robocopy sample\ ./sample02
-------------------------------------------------------------------------------
ROBOCOPY :: Windows の堅牢性の高いファイル コピー
-------------------------------------------------------------------------------
開始: 2018年9月3日 12:40:01
コピー元 : C:\Users\user\Desktop\sample\
コピー先 : C:\Users\user\Desktop\sample02\
ファイル: *.*
オプション: *.* /DCOPY:DA /COPY:DAT /R:1000000 /W:30
------------------------------------------------------------------------------
新しいディレクトリ 2 C:\Users\user\Desktop\sample\
100% 新しいファイル 12 sample01.txt
100% 新しいファイル 12 sample02.txt
------------------------------------------------------------------------------
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 1 1 0 0 0 0
ファイル: 2 2 0 0 0 0
バイト: 24 24 0 0 0 0
時刻: 0:00:00 0:00:00 0:00:00 0:00:00
速度: 4800 バイト/秒
速度: 0.274 MB/分
終了: 2018年9月3日 12:40:01
C:\Users\user\Desktop>cd sample02
C:\Users\user\Desktop\sample02>dir /tc
C:\Users\user\Desktop\sample02 のディレクトリ
2018/09/03 12:40 <DIR> .
2018/09/03 12:40 <DIR> ..
2018/09/03 12:25 12 sample01.txt
2018/09/03 12:37 12 sample02.txt
2 個のファイル 24 バイト
2 個のディレクトリ 161,517,121,536 バイトの空き領域
sample02フォルダにはsampleフォルダのファイルが作成日も含めてコピーされているのが分かるかと思います。