Rsync にはフォルダの内容が含まれますが、親フォルダは除外されます。

Rsync にはフォルダの内容が含まれますが、親フォルダは除外されます。

オンラインで検索しましたが、答えが見つかりませんでした...目的地でこの結果を取得しようとしました。

Media_Files
    Web
        Print

私のソースファイルは

Media_Files
    Assets
        Web
            Print

フォルダを除外、削除、削除、またはフィルタリングしながらフォルダの使用量をAssets維持する方法は?ありがとうWeb/Printrsync

答え1

これは2つのステップで行う必要があります。

  1. 除くすべてをコピーしますMedia_Files/Assets(他にもあると仮定Media_Files)。
  2. コピーMedia_Files/Assets/Web

最初のステップは次のように実行できます。

rsync -av --exclude=/Assets/ Media_Files/ destination

Madia_Filesこれにより、ディレクトリ(権限およびその他のメタデータを含む)がdestination生成されたコピーに(詳細に)繰り返しコピーされます(生成するdestinationソースパスの末尾のエントリを削除します)。Media_Files/destination/Media_Files

除外パターンのため、直下のディレクトリAssetsは無視されます。Media_Files/Assets/

2番目のステップは次のように実行できます。

rysync -av Media_Files/Assets/Web destination

/ソースパスの最後に欠けている手段はWebそのパスに挿入されますdestination

Media_Files/Assetsこれ以外に他のファイルやディレクトリをコピーする必要がある場合は、代わりWebに使用してください。

rsync -av Media_Files/Assets/ destination

これにより、ディレクトリとその内容をMedia_Files/Assets含むすべてが。Webdestination


次の 2 つの手順を実行できます。

  1. destination何かを作る精密Media_Filesを含むのコピーMedia_Files/Assets
  2. destination/Assets目的のコンテンツを手動で移動しdestinationて削除しますdestination/Assets

簡単に言うと:

rsync -av Media_Files/ destination
mv -i destination/Assets/* destination
rmdir destination/Assets

destination/Assets最後の2つのコマンドは、保持したい項目(たとえば)だけを移動し、残りは削除するように変更されます。destination/Assets/Webここでは、表示されるすべてのファイルとディレクトリを移動しようとしていると仮定し、これによりAssetsサブディレクトリが完全に空になります。

答え2

次のコマンドを使用して結果を取得できます

rsync -azvP Media_Files/assets/Web Media_Files/

関連情報