rsyncを使用していくつかのバックアップを自動化しようとすると、次の問題が発生します。レプリケーションから除外する一部のコンテンツを含むファイルがあります。ファイルに1行しかないと仮定
exc
rsync が行うことは、rsync を提供するディレクトリから「exc」という名前のファイルまたはディレクトリを除外することです。ただし、次のツリーがある場合:
./
|
+---exc
| file1
|
+---directory
+ file2
|
|
+---exc
file3
図が明確であることを願っています。私が望むのは、最初のEXCを除外することですが、EXC行を含むファイルを渡している間に2番目のEXCをコピーすると、両方が除外されます。 exというより深いファイルがある可能性があるため、除外ファイルの行はルートファイルexcのみを指す必要があります。
除外パターンはどのように見えるべきですか?
答え1
--exclude
前に追加して/
輸送ルートに固定することができます。これにより、--exclude /exc
必要に応じて機能します。
テストケースを使用してください。
mkdir -p exc directory/exc
touch exc/file1 directory/file2 directory/exc/file3
rsync -av --exclude /exc . /tmp/
/tmp には、/exc/* ディレクトリを含む現在のフォルダが含まれますが、exc/
元のフォルダは含まれません。