Linux从入门到精通如何使用`tar`命令压缩/解压文件,并排除特定目录?
在Linux中,`tar`命令是归档和压缩文件的强大工具,支持排除特定目录。以下是详细指南:
# 打包并用gzip压缩(.tar.gz) tar -czvf archive.tar.gz /path/to/dir_or_file
# 打包并用bzip2压缩(.tar.bz2) tar -cjvf archive.tar.bz2 /path/to/dir_or_file ``` 参数说明:
- `-c`:创建归档
- `-v`:显示过程(可选)
- `-f`:指定文件名
- `-z`:使用gzip
- `-j`:使用bzip2
2. 解压文件 ```bash # 解压.tar tar -xvf archive.tar
# 解压.tar.gz tar -xzvf archive.tar.gz
# 解压到指定目录 tar -xzvf archive.tar.gz -C /target/directory ``` 参数说明:
- `-x`:解压
- `-C`:指定目标目录
1. 排除单个目录 ```bash tar -czvf archive.tar.gz --exclude='dir_to_exclude' /path/to/source ```
2. 排除多个目录 ```bash tar -czvf archive.tar.gz \ --exclude='dir1' \ --exclude='dir2' \ /path/to/source ```
3. 使用通配符排除 ```bash # 排除所有cache目录 tar -czvf archive.tar.gz --exclude='*.cache' /path/to/source
# 排除特定模式的文件 tar -czvf archive.tar.gz --exclude='*.tmp' /path/to/source ```
4. 从文件读取排除列表 创建排除规则文件(如 `exclude.txt`): ``` dir_to_exclude *.log temp/* ``` 然后执行: ```bash tar -czvf archive.tar.gz -X exclude.txt /path/to/source ```
2. 增量备份(仅打包修改过的文件) ```bash tar -czvf backup.tar.gz -g /path/to/snapshot.file /path/to/source ```
3. 处理绝对路径(避免归档根目录) ```bash tar -czvf archive.tar.gz -C /path/to/source . ```
2. 压缩率对比:
- `gzip`(`.gz`):速度快,压缩率一般。
- `bzip2`(`.bz2`):速度慢,压缩率更高。
- `xz`(`.xz`):更高压缩率(用法:`-J` 参数)。
3. 保留文件属性:
- 默认保留权限、时间戳等,如需强制保留,添加 `-p` 参数。
# 解压时排除文件 tar -xzvf archive.tar.gz --exclude='unwanted_dir' ```
通过灵活组合参数,`tar`可以满足大多数归档需求。建议通过 `man tar` 查看完整手册。
END
云服务器活动(最新)

扫码添加站长好友
文章投稿、业务合作、咨询等
技术交流、问题反馈等