ディレクトリでyes 'cp -rfに対応するコマンドをどのように実行しますか?

ディレクトリでyes 'cp -rfに対応するコマンドをどのように実行しますか?

以下のディレクトリツリーを例に、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が 。destsrcsrc--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 ファイルから抽出したファイルで既存のファイルを上書きします。

関連情報