在 tar 中如何排除目录内容但保留空目录

在 tar 中如何排除目录内容但保留空目录

我想创建一个 tar 文件,排除具有许多子文件夹和文件的某些文件夹,但仅保留被排除的主文件夹。解释:

-project
  |-dir1
  |-dir2
  |-cache
  |-logs
  |-dir3
  --dir4

我希望我的 tar 排除缓存和日志内容(文件和文件夹),但在 tar 文件中保留这些空文件夹。

如果我使用 --exclude=project/cache,它会从文件中排除文件夹。我该怎么做?

答案1

您可以排除相关目录中的文件,而无需排除目录本身--exclude=project/cache/*

请注意,如果这些目录中有点文件,它们仍会在 tar 中被拾取;如果是这种情况,您可能需要使用更复杂的正则表达式。

答案2

对@MadHatter 的答案进行了微小的改进,也可以防止点文件:

--exclude=project/cache/{*,.*}

相关内容