フォルダ構造を維持しながら変更されたファイルをコピーする方法

フォルダ構造を維持しながら変更されたファイルをコピーする方法

私はPHPプロジェクトのファイルをたくさん変更しており、これらの変更をFileZilla FTP経由でサーバーにプッシュしたいと思います。すべてのファイルをプッシュするのではなく、過去14日間に変更されたファイルを見つけて、フォルダ/ModifiedFiles構造を維持しながらフォルダにコピーしたいと思います。これにより、フォルダの内容を/ModifiedFilesFileZillaにドラッグするだけで、そのフォルダに必要なすべてのファイルが上書きされます。

Windowsを使用している場合は、次のコード行を実行すると目的の操作が実行されます。

xcopy RUF_Donation_Web ModifiedFiles /S /V /I /R /D:02-09-2016

Mac(OS X Yosemite)のBashターミナルでこれを行うにはどうすればよいですか?

答え1

cpioこれは次の一般的な操作ですpax

find . -type f -mtime -14 -print0 | pax -0 -rw /ModifiedFiles

-lこのオプションを使用してコピーの代わりにリンクを作成することもできます。このコマンドはDebianでは正しく機能しませんが、paxOS / Xでは同じ問題が発生しない可能性があります。

cpio(の祖先)を使用してpax同様のことを行うことができますが、cpioOS / Xでの実装は、任意のファイル名を受け入れる/オプションをサポートしていないようです-0--nullファイル名に改行文字が含まれていないことがわかっている場合でも、次のことができます。

find . -type f -mtime -14 | cpio -dp /ModifiedFiles

Debian(GNU)とOS / Xのcpio両方の-lバージョンでは、コピーの代わりにリンクを作成するオプションがあります。 (Debianはうまくいくようです)。

答え2

達成しようとしているのはrsyncに組み込まれています。あなたはできますrsync -a /source /dest。これを簡単なスクリプトに入れ、クローンジョブとして追加できます。コピーした内容のログを保持する--log-file=[File]オプションを追加できます。詳細はこちらからご覧いただけます。http://linux.die.net/man/1/rsync

関連情報