rsync:除外ファイルの除外パターンが機能しません。

rsync:除外ファイルの除外パターンが機能しません。

すべてのvimバックアップファイル(隠し* .swpファイル)を同期から除外しようとしています。私の除外ファイルのパターンは次のとおりです。

**.swp

私のrsync呼び出し:

rsync -ravu --exclude=~/sync/exclude.txt /home/username/Documents/ remotehost:/home/username/Documents/

このファイルは同期ルートのサブディレクトリにあります。動作しません。 Rsyncはvimバックアップファイルもコピーします。私はまた試した: *.swp

私は何が間違っていましたか?

答え1

(パターンを含むファイル名が必要)の--exclude代わりに(パターンが必要)を使用しています。--exclude-from

再帰同期を有効にできるため、-r--recursive)と-a--archive)も必要ありません。実際には-aマニュアルと-a同じです。-rlptgoD

答え2

単一パターンが不要な場合とを**使用することをお勧めします--exclude。この--includeパターンを使用すると、--excludeパターンに一致するディレクトリがコピーに含まれます。

rsync -a  --include '*/' --exclude='.*.swp' /home/username/Documents/ remotehost:/home/username/Documents/

リモートユーザー名が/home/usernameホームディレクトリの場合は、相対パスを使用してさらに簡素化できます。

rsync -a  --include '*/' --exclude='.*.swp' /home/username/Documents/ remotehost:Documents/

vimまた、一致するものがすでに存在するか使用されている場合は、別のファイル名がスワップファイルとして使用されることに注意してください。*.swpしかし、この1つのパターンでほとんどを捉えることができます。文書が警告する内容は次のとおりです。

ファイルがすでに存在する場合(たとえば、競合から回復している場合)、警告が表示され、「.swo」、「.swn」などの他の拡張子が使用されます。

.*.sw[a-p]十分な懸念がある場合は、使用する除外パターンを調整してください。

関連情報