使用-c参数指定目标路径是最标准可靠的解压方式,需确保目标目录存在且有写入权限,-c必须紧接-f后、路径不能有空格,推荐用mkdir -p与tar组合命令一步执行。

直接用 -C 参数指定目标路径即可,这是最标准、最可靠的方式。
核心命令格式要记牢
无论压缩包是 .tar、.tar.gz 还是 .tar.bz2,解压到异地目录都靠 -C(大写 C,代表 change directory):
- 普通 tar 包:`tar -xvf archive.tar -C /path/to/target`
- gzip 压缩包(.tar.gz 或 .tgz):`tar -zxvf archive.tar.gz -C /path/to/target`
- bzip2 压缩包(.tar.bz2):`tar -jxvf archive.tar.bz2 -C /path/to/target`
注意:-C 必须紧接在 -f 之后的文件名之前,且它后面直接跟完整绝对路径或相对路径,中间不能有空格。
目标目录必须提前存在
tar 不会自动创建不存在的父目录 —— 这和 cp 命令不同。如果 /path/to/target 尚未建立,需先手动创建:
- 用
mkdir -p /path/to/target(-p 可递归创建多级目录) - 再执行解压命令,避免报错
tar: /path/to/target: Cannot open: No such file or directory
常见易错点提醒
-
-C 参数位置不能错:写成
tar -xvf archive.tar -C /target/✅;写成tar -C /target/ -xvf archive.tar❌(部分旧版 tar 不支持) -
路径别漏斜杠:写
-C /opt/app表示解压进/opt/app/目录下;写-C /opt/app/效果一样,但建议统一用末尾带斜杠的写法更清晰 -
权限问题要留意:目标目录需对当前用户有写入权限,否则解压会失败,提示
Permission denied
想一步到位?组合命令更稳妥
为防遗漏,可把建目录和解压合为一行(用 && 连接):
- `mkdir -p /data/webapp && tar -zxvf app.tar.gz -C /data/webapp`
- 这样既确保目录存在,又避免手动分步操作出错











