tar命令不加压缩参数(如-z、-j、-j)仅执行纯打包,生成未压缩的.tar文件;它合并文件、保留权限与符号链接,但不压缩,-f选项必须紧接文件名且位于最后,--exclude需置于目标路径前,验证用tar -tf。

tar命令不加压缩参数就是纯打包
直接用 tar -cf 就能生成未压缩的 .tar 文件,它只合并文件、保留权限和符号链接,不做任何压缩。这适合快速归档、后续统一处理,或 CPU 负载高时避免压缩开销。
常见错误是误以为 tar 默认压缩——它根本不压缩,-z、-j、-J 才是调用外部压缩器的开关。
-
tar -cf archive.tar folder/:最简打包,无压缩,生成archive.tar - 必须带
-f且后接文件名,且-f必须是最后一个选项(否则报错tar: You must specify one of -c, -r, -t, -u, -x) - 若目标路径含空格或特殊字符,建议用引号包裹:
tar -cf "my backup.tar" "folder with space/"
排除目录时--exclude参数位置很关键
--exclude 必须放在要打包的路径**之前**,否则会被当作要打包的路径处理,导致排除失效甚至报错。
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
比如想打包 /var/log 但跳过 /var/log/journal:
- ✅ 正确:
tar -cf logs.tar --exclude="journal" /var/log/ - ❌ 错误:
tar -cf logs.tar /var/log/ --exclude="journal"(tar会把--exclude=...当作一个要打包的“文件名”,报错找不到) - 多个排除项可重复写:
--exclude="*.tmp" --exclude="cache/"
验证.tar包内容是否完整
生成 .tar 后别急着删源文件,先用 tar -tf 确认内容。它不依赖压缩算法,对所有 .tar、.tar.gz、.tar.xz 都有效。
-
tar -tf archive.tar | head -n 5:看前5个条目,确认路径结构正常 -
tar -tf archive.tar | wc -l:统计总文件数,对比源目录find folder/ -type f | wc -l - 若发现路径开头带
./或多余层级,说明执行时路径没切对——建议进到父目录再运行,或用绝对路径避免歧义
注意权限和相对路径陷阱
tar 默认按执行时的相对路径记录文件名。如果在 /home/user 下运行 tar -cf a.tar project/,解包时默认也会创建 project/ 目录;但如果用 tar -cf a.tar ./project/,里面路径就变成 ./project/xxx,某些旧版工具可能处理异常。
- 加
-P会保留绝对路径(如/etc/passwd),解压时直接写入根目录——危险,慎用 - 加
-p(小写)才保留权限、属主、时间戳等元数据,备份系统文件时必须加 - 安全做法:统一在目标文件夹父目录下执行,用
tar -cpf archive.tar foldername/










