linuxtar命令目录
linuxtar命令目录详细介绍
在 Linux 中,tar命令主要用于打包和压缩文件 / 目录,以下是处理目录的常用操作及示例:
1. 打包目录(创建归档文件)
- 语法:bash
选项 归档文件名 目录路径 - 常用选项:
-c:创建归档文件(Create)。-v:显示详细过程(Verbose)。-f:指定归档文件名(File),需紧跟文件名。-p:保留文件权限(Permission)。-P:保留绝对路径(默认相对路径,慎用绝对路径)。
示例:
- 打包目录
/home/user/documents为docs.tar:
bashdocs.tar /home/user/documents(归档文件包含
documents目录下的所有内容,路径为相对路径) - 打包目录并压缩为
gz格式(体积更小):
bashdocs.tar.gz /home/user/documents常用压缩格式选项:
-z:gzip 压缩(.tar.gz)-j:bzip2 压缩(.tar.bz2)-J:xz 压缩(.tar.xz,压缩率更高)
2. 解压目录到指定位置
- 语法:bash
选项 归档文件名 目标目录 - 常用选项:
-x:解压归档文件(Extract)。-C:指定解压目标目录(Change directory)。
示例:
- 解压
docs.tar到当前目录:bashdocs.tar - 解压
docs.tar.gz到/var/tmp/目录:bashdocs.tar.gz /var/tmp/ - 解压时保留原目录结构(若归档文件包含根目录):
假设归档文件内路径为documents/file.txt,解压后会生成documents/目录。
3. 排除目录 / 文件(打包时过滤)
使用--exclude选项排除指定目录或文件,支持通配符(需用引号包裹)。
示例:
- 打包
/home/user目录,但排除/home/user/temp和所有.log文件:bashhome.tar.gz /home/user/temp /home/user - 相对路径排除(更安全,避免绝对路径错误):
进入/home/user目录后打包,排除temp目录:bash/home/userhome.tar.gz temp
4. 查看归档中的目录结构
- 语法:bash
归档文件名 - 示例:
查看docs.tar.gz中的文件和目录:bashdocs.tar.gz
5. 注意事项
- 相对路径 vs 绝对路径:
- 打包时使用相对路径(如
cd 目录 && tar -c ... .),避免解压后目录层级错误(如根目录/开头可能导致文件被解压到系统路径)。
- 打包时使用相对路径(如
- 权限问题:
- 解压时若提示权限不足,需用
sudo或确保目标目录有写入权限。
- 解压时若提示权限不足,需用
- 压缩格式选择:
.tar.gz兼容性强,.tar.xz压缩率最高但速度较慢,根据需求选择。
常用命令速查表
| 操作 | 命令示例 |
|---|---|
| 打包目录 | tar -cvf archive.tar /path/to/directory |
| 打包并压缩(gz) | tar -czvf archive.tar.gz /path/to/directory |
| 解压到指定目录 | tar -xvf archive.tar -C /target/directory |
| 排除目录 / 文件 | tar -czvf archive.tar.gz --exclude='dir/to/exclude' /path |
| 查看归档内容 | tar -tvf archive.tar |
如果需要更具体的场景(如增量备份、保留符号链接等),可以进一步说明!