Ubuntu中使用tar命令排除文件夹和隐藏文件的总结

学习笔记作者:admin日期:2025-06-30点击:6

摘要:本文介绍了如何在Ubuntu中使用tar命令压缩文件夹,并通过--exclude参数排除特定文件夹(如download)以及以.开头的隐藏文件夹。提供了基本用法和进阶技巧,包括动态排除所有隐藏目录的方法。

1. 基本用法

1.1 排除指定文件夹

要排除名为 `download` 的文件夹,可以使用以下命令:

tar -cvf archive.tar foldername --exclude="download"

1.2 排除以.开头的隐藏文件夹

要排除所有以 `.` 开头的隐藏文件夹,可以添加 `--exclude=".*"` 参数:

tar -cvf archive.tar foldername --exclude="download" --exclude=".*"

2. 进阶用法

2.1 手动列出要排除的隐藏目录

如果你只想排除特定的隐藏目录,例如 `.cache`, `.config`, `.ssh` 等,可以手动列出它们:

tar -cvf archive.tar foldername --exclude="download" \
  --exclude="./.cache" \
  --exclude="./.config" \
  --exclude="./.ssh"

2.2 动态排除所有隐藏目录

如果需要动态排除所有以 `.` 开头的隐藏目录,可以结合 `find` 和 `sed` 命令:

# 先进入目标目录
cd foldername

# 收集所有隐藏目录
EXCLUDES=$(find . -maxdepth 1 -type d -name ".*" ! -name "." | sed 's/^\./\/\//g' | awk '{printf "--exclude=./%s ", $0}')

# 执行 tar 命令
cd ..
tar -cvf archive.tar foldername $EXCLUDES --exclude="download"

3. 结合gzip压缩

如果还需要进行 gzip 压缩,可以加上 `-z` 或 `-J` 参数:

tar -czvf archive.tar.gz foldername --exclude="download" --exclude=".*"

4. 总结

要排除以 `.` 开头的隐藏文件夹,最常用的方法是:

tar -cvf archive.tar foldername --exclude="download" --exclude=".*"
如果你有进一步需求(例如只排除隐藏目录、保留某些特定隐藏文件),请告诉我,我可以帮你写更精确的命令!

上一篇      下一篇