f
ファイルはありますが、src
ディレクトリd
(f
非表示にすることも非表示にすることもできます)には、次のツリーがあります。
src/f1
src/f2
...
src/d1
src/d2
src/d3
...
dst
同じ構造をフォルダにコピーしますが、src
そのフォルダ内のすべてのファイルを除外したいと思います(たとえば、上記のツリーの、、f1
など、f2
他のフォルダの内容は除く)。つまり、フォルダとその内容(ファイル、フォルダ、リンク、デバイスなど)をすべてコピーしたいのです。d1
d2
d3
src
dst
ファイルを1つだけ使用する必要があり、rsync
可能であれば1つのファイルのみを使用する必要があります(しかし--exclude-from
他の方法も歓迎します)。rsync
アンカーを許可し、「スラッシュ()を除くすべての項目と一致」を意味するため、除外ファイルを挿入しようとしましたが、/*
結果として空のフォルダが作成されます。/
src
*
/
dst
非常にありがとう
ベストアンサー1
manrsyncは言った:
option --filter=RULE, -f add a file-filtering RULE
だから一度試してください。
rsync -avr -f"+ */" -f"- *" /src/ /dest/
-f"+ */"
-f"- *"
どこからでもファイルが削除されると、ディレクトリが追加されます。
@Kusalanandaが言ったように、これはすべてのサブツリー内のすべてのファイルを防ぎます。
rsync -avr -f"+ */" -f"- /*" /src/ /dest/
または
rsync -avr --include="*/" --exclude="/*" /src/ /dest/
ツリーサブディレクトリのファイルが同期されます。