如何使用 rsync 传输与模式匹配的文件
how to transfer files that match a pattern with rsync
早上好,
我想将目录中的特定文件传输到远程计算机,同时保留子目录的体系结构。此外,我只想传输具有特殊扩展名(例如“.txt”)的文件。
我尝试了以下方法:
rsync -aP --include *.txt ./sourceDirectory user@hostIP:destDirectory
但它会将所有文件复制到目标 (destDirectory
),而不仅仅是那些匹配 .txt
模式的文件。
谁能帮我解出这样的谜语?
P.S.: 显然,目录 sourceDirectory
包含我的 .txt
文件所在的子目录。
我以前在rsync视频到家用NAS时遇到同样的问题。如果您阅读 rsync 的手册,--include
标志的真正意思是“不排除”。它实际上必须与 --exclude
标志一起工作。
以下命令将完成您的工作:
rsync -aP --include="*/" --include="*.txt" --exclude="*" sourceDirectory destDirectory
该命令的字面意思是排除所有内容,子文件夹和 txt 文件除外。
早上好, 我想将目录中的特定文件传输到远程计算机,同时保留子目录的体系结构。此外,我只想传输具有特殊扩展名(例如“.txt”)的文件。 我尝试了以下方法:
rsync -aP --include *.txt ./sourceDirectory user@hostIP:destDirectory
但它会将所有文件复制到目标 (destDirectory
),而不仅仅是那些匹配 .txt
模式的文件。
谁能帮我解出这样的谜语?
P.S.: 显然,目录 sourceDirectory
包含我的 .txt
文件所在的子目录。
我以前在rsync视频到家用NAS时遇到同样的问题。如果您阅读 rsync 的手册,--include
标志的真正意思是“不排除”。它实际上必须与 --exclude
标志一起工作。
以下命令将完成您的工作:
rsync -aP --include="*/" --include="*.txt" --exclude="*" sourceDirectory destDirectory
该命令的字面意思是排除所有内容,子文件夹和 txt 文件除外。