私はPHPプロジェクトのファイルをたくさん変更しており、これらの変更をFileZilla FTP経由でサーバーにプッシュしたいと思います。すべてのファイルをプッシュするのではなく、過去14日間に変更されたファイルを見つけて、フォルダ/ModifiedFiles
構造を維持しながらフォルダにコピーしたいと思います。これにより、フォルダの内容を/ModifiedFiles
FileZillaにドラッグするだけで、そのフォルダに必要なすべてのファイルが上書きされます。
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では正しく機能しませんが、pax
OS / Xでは同じ問題が発生しない可能性があります。
cpio
(の祖先)を使用してpax
同様のことを行うことができますが、cpio
OS / 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