私のrsyncフィルタを含むフォルダを1つだけコピーし、他のフォルダをコピーしないのはなぜですか?

私のrsyncフィルタを含むフォルダを1つだけコピーし、他のフォルダをコピーしないのはなぜですか?

私のホームディレクトリと名前が特定のパターンと一致する2つのサブディレクトリにあるすべてのファイルを同期したいと思います。しかし、私のrsyncコマンドとフィルタはサブディレクトリの1つだけを通過します。

rsync -aHm --delete --include-from=/home/ftamborello/.rsync-include --exclude-from=/home/ftamborello/.rsync-exclude -e "ssh -A -t frank@frynseytv" /home/ftamborello/ :/Users/frank/Backup/

.rsync - 含む:

*.pdf
*.lisp
*.scr
*.r
*.txt
*.csv
*.py
*.c
*.h
*.[0-9][0-9]
.rsync*
.autobackup.sh
Documents/
fpt-logs/

.rsync-除外:

*

Rsyncコマンドの結果(-nvを使用):

building file list ... done
deleting .#fpt-log-2016.05.10
./
.ccl-init.lisp
.emacs.2016.06.17
.profile.2016.03.09
.profile.2016.08.05
.rsync-exclude
.rsync-include
fabfile.py
output.pdf
python-test.py
temp.txt
Documents/
fpt-logs/
fpt-logs/fpt-log-2015.12.16
fpt-logs/fpt-log-2015.12.17
...
fpt-logs/fpt-log-2016.08.19
fpt-logs/fpt-log-2016.08.22

sent 4,827 bytes  received 1,130 bytes  2,382.80 bytes/sec
total size is 3,213,954  speedup is 539.53 (DRY RUN)

Documents/auto-backup-test.txtやcl-template.lispなど、インクルードパターンと一致する必要があるドキュメント階層にはかなり多くのファイルがあり、rsyncはそのファイルをコピーできないようです。

私は私のコードを開発するためにこのunix.stackexchange投稿を使用しました。

Rsyncフィルタ:1つのパターンのみをコピー

私は何を見逃していますか?

ベストアンサー1

私はrsyncマニュアルページを再びRTFMし、今回は知識のコアカーネルのように見えました。

--include/コマンドラインオプションは、フルスコープの--excludeルール解析を許可しません。

これは、除外/インクルードファイルを指すと同じ結果が生成されることを意味します。だから.rsync-filterファイルを作成し、その-Fオプションを使用しました。 rsync はディレクトリ階層全体を移動し、.rsync-filter私のファイルのパターンを期待どおりに一致させます。

したがって、解決策は、最も単純な場合を除くすべての場合に除外/包含の代わりにフィルタリングを使用するようです。

おすすめ記事