rsyncサブフォルダを別のフォルダ名に

rsyncサブフォルダを別のフォルダ名に

私がこれを行うとき:

rsync folder/a /mnt/some/destination

結局得ますが、/mnt/some/destination/folder/a私が望むものはfolder/aコンテンツです。まっすぐ/mnt/some/destination

次のようにすれば可能であることを知っています。

rsync folder/a/* /mnt/some/destination

ただし、問題の鍵は、この--deleteオプションには適用されないことです。このオプションを使用するにはソースがディレクトリである必要があるため、ワイルドカードは機能しません。

解決策は

cd folder/a && rsync --delete . /mnt/some/destination

作業ディレクトリを変更せずにこれを行う方法はありますか?私のシナリオはCD / CIビルド環境です。

tar -C、または同じオプションがありますかwget --cut-dirs

答え1

変える:

rsync folder/a  /mnt/some/destination

使用:

rsync folder/a/ /mnt/some/destination

これにより、--deleteソースに存在しないターゲットのファイルを削除し、内容folder/a/mnt/some/destination/

関連情報