我想创建一个 tar 文件,排除具有许多子文件夹和文件的某些文件夹,但仅保留被排除的主文件夹。解释:
-project
|-dir1
|-dir2
|-cache
|-logs
|-dir3
--dir4
我希望我的 tar 排除缓存和日志内容(文件和文件夹),但在 tar 文件中保留这些空文件夹。
如果我使用 --exclude=project/cache,它会从文件中排除文件夹。我该怎么做?
答案1
您可以排除相关目录中的文件,而无需排除目录本身--exclude=project/cache/*
。
请注意,如果这些目录中有点文件,它们仍会在 tar 中被拾取;如果是这种情况,您可能需要使用更复杂的正则表达式。
答案2
对@MadHatter 的答案进行了微小的改进,也可以防止点文件:
--exclude=project/cache/{*,.*}