Fedoraで特定のコピーを作成したいと思っています。
私は2つのフォルダを持っています:
'webroot':すべてのWebファイル/画像などを保持します
'export':SVNリポジトリからエクスポートされた何千ものPHP、CSS、JSドキュメントを含むフォルダー。
エクスポートディレクトリには、ルートと同じファイル/フォルダが多数含まれていますが、ルートには、エクスポートにない追加のファイル/フォルダが含まれています。
次のオプションを使用して、エクスポートのすべてのコンテンツをWebルートにマージしたいと思います。
私はcpについて少し調査しました-これでうまくいくでしょうか?:
cp -pruf ./export /path/to/webroot
可能性はありますが、export
とwebroot
の対応するファイルの内容が同じで、変更時間が異なる場合は常に、不要なコピー操作を実行することになります。おそらくrsync
から少し賢い振る舞いが得られるでしょう:
rsync -pr ./export /path/to/webroot
さらに、rsync
は、SSH接続を介して、あるホストから別のホストにファイルをコピーできます。さらに、動作を微調整するために指定できる無数のオプションがあります。詳細については、manページを参照してください。
[〜#〜] edit [〜#〜]:パーミッションを保持することの意味についての明確化に関して:おそらく-p
オプションを省略したいと思うでしょう。
Cpに正しい引数をすべて取得したようです
cpio
の仕事のように聞こえます(したがって、おそらくGNU tarでも実行できます):
cd export
find . -print | cpio -pvdm /path/to/webroot
所有者を保存する必要がある場合は、もちろん、ルートとして実行する必要があります。 -p
オプションは「パスモード」です。これは場所間のコピーを意味します。 -v
は冗長です(ただし、インタラクティブではありません。違いがあります)。 -d
は、必要に応じてディレクトリを作成することを意味します。 -m
は、変更時間を保持することを意味します。デフォルトでは、-u
オプションがないと、cpio
は、ソース領域のファイルよりも新しいターゲット領域のファイルを上書きしません。