以下のディレクトリツリーを例に、directory/folderA
コンテンツをdirectory
。
同じ名前のファイルがターゲットに存在する場合にファイルを上書きする方法(例:directory/folderA/2017/06/info.log
およびdirectory/2017/06/info.log
)
directory
|-- folderA
| |-- 2017
| | |-- 06
| |
| |-- 2016
| | |-- 12
| | |-- 11
| | |-- 10
|
|-- 2017
| |-- 04
| |-- 05
| |-- 06
|
|-- 2016
| |
答え1
それはまるでrsync -a --remove-source-files src/ dest
?簡単なテストは、dest
存在するが存在しないすべてがsrc
保存されることを示しています。 (末尾のスラッシュに注意してくださいsrc
。ここでは必須です。)
もっと保存すると、そのファイル--ignore-existing
が 。dest
src
src
--remove-source-files
一般的に言えば、rsync
さまざまなオプションを備えた非常に強力なツールです。 (そして比例的に少し学習曲線があります...ここの状況はかなり単純に見えますが。)誰でもrsync
。
答え2
tar -cv /parent_folder/subfolder/* -f - I tar -xv --overwrite /parent_folder/
tarを使用してディレクトリ全体を圧縮し、親フォルダからunarにパイピングするのはおそらく最良のオプションです(bzipを介してtarファイルをフィルタリングするには、パイプの前後に-jを追加します)。
--overwrite: tar ファイルから抽出したファイルで既存のファイルを上書きします。