我在网上搜索但没有找到答案......我试图在目的地达到这个结果
Media_Files
Web
Print
我的源文件是
Media_Files
Assets
Web
Print
如何排除、删除、删除或过滤文件Assets
夹但保留Web/Print
文件夹使用rsync
?谢谢
答案1
您需要分两步执行此操作:
- 复制除 之外的所有内容
Media_Files/Assets
(假设 下还有其他内容Media_Files
)。 - 复制
Media_Files/Assets/Web
。
第一步可以通过以下方式完成
rsync -av --exclude=/Assets/ Media_Files/ destination
这将(详细地)递归地将Madia_Files
目录(包括权限和其他元数据)复制到destination
,制作destination
的副本(删除源路径上的Media_Files
尾随以创建)。/
destination/Media_Files
由于排除模式,Assets
直接位于其下的目录将被忽略。Media_Files
/Assets/
第二步可以通过以下方式完成
rysync -av Media_Files/Assets/Web destination
/
源路径末尾缺少意味着Web
将被放入其中destination
。
Media_Files/Assets
如果除此之外您还需要复制其他文件或目录Web
,请改用
rsync -av Media_Files/Assets/ destination
这会将所有内容Media_Files/Assets
(包括Web
目录及其内容)直接复制到destination
.
您可以执行以下两个步骤:
- 做
destination
一个精确的的副本Media_Files
,包括Media_Files/Assets
. destination/Assets
手动移动您想要移入destination
并删除的内容destination/Assets
。
简而言之:
rsync -av Media_Files/ destination
mv -i destination/Assets/* destination
rmdir destination/Assets
最后两个命令将被修改为仅移动destination/Assets
您想要保留的内容(例如destination/Assets/Web
),并删除其余内容(这里我假设您想要移动所有可见文件和目录,并且这使Assets
子目录完全为空)。
答案2
您可以使用以下命令来实现结果
rsync -azvP Media_Files/资产/Web Media_Files/