我想用来rsync
将文件上传到服务器。我将默认排除所有。然后我会包括我需要的。
这样做时,我意识到有时我需要排除文件夹中的文件,但包含其他文件夹。
我想使用一种模式来做到这一点,但我不确定模式格式应该是什么,以便说“我想包含除名为demo
”的子文件夹之外的所有子文件夹
--include="models/" --include="models/!demo" --exclude="*"
我绝对不想键入要包含在文件夹中的每个文件夹或要从我的项目中排除的每个文件夹。
我想默认排除所有。然后根据模式包含,这样我就不必被迫包含整个文件夹。
任何想法?
答案1
正如 meuh 所指出的在评论中,包含和排除模式按照命令行上给出的顺序进行测试。
要排除models/demo
,但包含该目录中的所有其他文件,并排除其他所有文件,请使用
--exclude=models/demo --include='models/***' --exclude='*'
该models/***
模式与目录匹配models
以及一切在它下面。models/demo
由于首先指定了排除模式,因此目录或文件将被排除。