Rsync インクルードと除外オプションを使用してディレクトリとサブディレクトリを含めますが、サブディレクトリのファイルは除外します。

Rsync インクルードと除外オプションを使用してディレクトリとサブディレクトリを含めますが、サブディレクトリのファイルは除外します。

私のシナリオを実際にrsyncとして扱うことができるかどうか疑問に思います。 Rsyncはローカルとリモートの間でうまく機能します。

htdocs/    
  folderswithfilesIneed/
    somefilesandfolders.jpg
    afolder/
      somefiles.png
  version/
    photofolder/
      photowithstupidname.jpg
      ...
   anotherfolderwithstupidname/
      photowithstupidname.jpg
      ...
   ...

これらすべてのファイルとフォルダを同期したいのですが、「photofolder」と「anotherfolderwithstupidname」のすべてのファイルを除外したいと思います。

誰でもこれを一度に考えてみましたか?

編集:もう少し明確に言えば、「バージョン」にフォルダが多いので、その内容を1つずつ除外することはできません。

ベストアンサー1

もちろん、これは除外ルールを使用すると簡単に実行できます。ディレクトリとそのコンテンツの両方を除外するには、ディレクトリ自体を除いてナビゲートしないでください。ディレクトリのみを含めsomedirて内容を含めたくない場合は(空のディレクトリ転送など)を除外しますsomedir/*。除外句がで始まる場合、/これは同期しているディレクトリルートへのパスです。

rsync -a --exclude='/version/photofolder/*' --exclude='anotherfolderwithstupidname/*' htdocs/ elsewhere/

すべてのサブディレクトリを含み…/version、ディレクトリ以外のファイルは含まず、…/versionサブディレクトリのコンテンツを除外する場合:

rsync -a --include='/version/*/' --exclude='/version/*' htdocs/ elsewhere/

すべてのサブディレクトリとその内容を含むが…/versionディレクトリではない次のファイルを除外する場合…/version

rsync -a --include='/version/*/' --include='/version/*/*' --exclude='/version/*' htdocs/ elsewhere/

おすすめ記事