この質問に似ていますが、より要求が厳しいです: ファイルの作成時間をまったく変更せずにファイルをコピーする方法は?
「変更」と「作成」の日付を台無しにせずに、コンピューター間でファイルをコピーしたい。
目的は、作業中に同期できた3台の異なるコンピューターのプロジェクトコードのdiff
sを比較することです。しかし、私は一度に1台のマシンしか作業していなかったので、どれが最も更新されたのか思い出せません。それはめちゃくちゃです、そして私はコピーを統一したいと思います(そしてうまくいけばそれをバージョン管理下に置きたいです)。
したがって、diff
ツールを使用する場合、ファイルの変更日を知っていると、変更を理解してマージするのに役立ちます。
3台のコンピューターのうち2台はLinuxで、1台はWindows8です。
上記を達成する他の方法、そのような状況でのベストプラクティスは大歓迎です。
Linux(およびその他のUnixライクなOS)では、フラッシュドライブとの間またはSMB/FTPサーバーからファイルをコピーできます。
cp -p
これにより、タイムスタンプが保持されます。
サーバーにアップロードするときにタイムスタンプを保持できるかどうかはわかりません。
コンピューターで最適なコードがわからない場合は、3つのソースディレクトリすべてを1台のマシンにコピーしてから、ファイルごとにマージするのが最善だと思います。 ツールのマージ 。
別の方法は、マシン上にgitリポジトリを作成し、別のコンピューターからソースをコピーしてgitリポジトリファイルを上書きするか、単にそれらを新しいブランチに追加してから、 git のマージを使用することです。 Windowsの場合、基本的なバージョン管理をすべて行うには Tortoise Gitクライアント の方が好きです。
メタデータのコピーについては、他の人が提案しているように、rsync -t
、cp --preserve=all
を使用できます。 FTP転送の場合、scp -p
を使用できます。
rsyncを使用できる2台のLinuxコンピューター間では、タイムスタンプがそのまま保持されます。
Windowsの場合、robocopyを使用して、タイムスタンプを変更せずにファイルをコピーできます。これを使用して、LinuxボックスのFTPサーバーからWindowsにファイルをコピーできます。