简介:这是一份适用于64位Linux系统的RAR压缩工具6.1.b1版本,面向需要在Linux环境中创建、解压RAR格式文件的开发者与运维人员。当需处理RAR多卷压缩、自解压包或AES加密档案时,该命令行工具便必不可少。压缩包共11个文件,整体约590KB,含rar与unrar可执行文件、makefile编译脚本、default.sfx自解压模块,以及多份txt说明文档(涵盖版本更新、使用说明、授权声明),另有htm参考页与lst文件清单,结构简洁易于部署。资源已有197人学习/下载。6.1.b1为测试版,新增功能且可能存在未修复问题,适合追求新特性并愿意承担风险的用户评估试用。部署简便,可作Linux下RAR格式处理与自解压方案的重要补充工具。
1. rarlinux-x64-6.1.b1.tar.gz 是什么:一个让 Linux 也能开 RAR 的官方工具包
从同事手里接过一个 .rar 备份文件,放到刚配好的 Linux 服务器上一解,tar、gzip、zip 全都认不出来,这是不少刚开始接触 Linux 系统安装和 Linux 常用命令的同学遇到的第一道坎。rarlinux-x64-6.1.b1.tar.gz 是 RARLAB 官方发布的 Linux x64 命令行压缩解压工具包,名字看着长,其实就是一个编译好的二进制包,没有源码、不需要编译,解压后把 rar 和 unrar 两个文件放到 PATH 里就能用。它解决的是 Linux 环境下处理 RAR 格式的刚需:解 Windows 传来的包、把服务器日志压成 rar、给备份加密和分卷。适合运维、嵌入式开发、DBA 以及桌面用户,是服务器上最常被忽视的救命工具之一。
2. 动手前先确认包内容:rarlinux 的 tar.gz 里装的不是源码
拿到这类 tar.gz 包,很多人下意识以为是源码包,想着 configure、make、make install 三步走。rarlinux 恰恰相反,RARLAB 把编译好的二进制直接塞进 tar.gz,解包即用。所以在安装之前,有三件事值得先做:核对下载完整性、看清包内结构、确认目标机器是真的 x64 架构。
2.1 下载后先别急着解压:拿到 tar.gz 先算一次校验和
官网下载页通常会给出每个压缩包的 SHA256 校验值,这个东西不是摆设。压缩二进制包最怕两件事:下载过程中断导致文件截断,或者镜像源被人动过手脚。前者会让解压时报“gzip: invalid compressed data”,后者更隐蔽,可能让你无意中拿到被替换过的程序。常见做法是下载完成后立刻算一次哈希,和页面上的官方值比对。
wget https://www.rarlab.com/rar/rarlinux-x64-6.1.b1.tar.gz sha256sum rarlinux-x64-6.1.b1.tar.gz逻辑说明:第一行用 wget 把包下载到当前目录,这是 Linux 下最直接的下载方式,不加-O时文件名保持原样。第二行计算文件的 SHA256 摘要,终端会打印一串 64 位的十六进制字符串。把这串和 RARLAB 官网贴出的值对比,完全一致再往下走。
参数说明:如果服务器上没装 wget,可以用curl -O替代,效果一样。对比哈希时不要只比前几位,养成比全串的习惯。如果哈希对不上,大概率是下载被中断或者镜像源有问题,直接换源重下,比硬解压安全得多。
还有一个容易踩的细节:RARLAB 的网页链接经常带上日期或版本号,建议直接进官网的“RAR for Linux”目录找当前版本,别用搜索引擎里流传的旧链接。旧链接可能指向已经不存在的路径,也可能下到过期版本,解出来的程序和系统里的 glibc 对不上。
2.2 解压后先看目录结构,再确认二进制权限
tar.gz 是两层封装:tar 负责打包,gzip 负责压缩。所以解包命令里-x是解包,-f指定文件名,GNU tar 会自动识别 gzip 压缩,不用额外写-z。解压之后,先别急着复制,看一眼目录结构和文件权限,能省掉后面一大半排查时间。
tar -xf rarlinux-x64-6.1.b1.tar.gz ls -l rar unrar rarfiles.lst license.txt readme.txt file rar unrar逻辑说明:-xf组合是解包最常见写法,-x表示 extract,-f表示后面跟文件名;想看得详细一点可以改成tar -xvf,多一个-v会把每个解出来的文件名打出来。解压后ls -l检查权限位,重点看 rar 和 unrar 有没有执行权限,也就是权限位里有没有x。大部分官方 tar 包制作时保留了执行位,但如果包是从 Windows 上传到服务器、或者经过某些在线解压服务中转,权限位可能变成 644,这时需要手动补上执行权限。
file命令是这里最实用的一步。它直接读二进制文件头,输出 rar 是 ELF 64-bit 可执行文件还是 32 位,链接的是动态库还是静态编译。正常情况下应该看到类似 “ELF 64-bit LSB executable, x86-64” 的输出。
参数说明:老版本 tar 如果不自动识别 gzip,可以写成tar -xzf,多一个-z明确指定 gzip 解压,对结果没有影响。检查权限后如果发现没有x,执行chmod +x rar unrar补上,这一步在瘦身过的容器镜像里尤其容易漏。
2.3 确认目标机器的架构:x64 与 arm64 的区别为什么在这里起作用
rarlinux-x64-6.1.b1.tar.gz 里的二进制是面向 x86_64 编译的成品,不是源码,没法拿到 ARM 机器上重新编译。这就是“arm64和x64有什么区别”这个问题在这个场景下的最直接体现:架构不匹配,二进制就是跑不了,报错还不是那种友好的“Exec format error”,有时候就是一个让人摸不着头脑的 “No such file or directory”。
uname -m ldd rar逻辑说明:uname -m打印内核架构。输出x86_64说明可以正常使用 x64 包;输出aarch64说明是 ARM64 环境,要去 RARLAB 找对应的 ARM 版本;输出i686或i386说明是 32 位环境,rarlinux-x64 同样装不上。ldd rar用来查看 rar 二进制依赖哪些动态库,如果输出里有 “not found” 字样,说明当前系统缺少运行库,需要先补基础依赖。
参数说明:部分精简版 Linux 镜像或容器里没有ldd命令,这时直接执行./rar看报错,常见的 “No such file or directory” 很多就是指动态链接器缺失,而不是文件不存在。这种情况下给镜像装上 glibc 相关基础包就能解决。
3. 安装到系统路径:把 rar 和 unrar 变成 Linux 常用命令
rarlinux 包里的两个核心程序各有分工:rar 负责创建压缩包,unrar 负责解压。安装的目标只有一个,让这两个命令在任意目录下都能直接敲出来用。最常见的做法是复制到/usr/local/bin,这是 Linux 系统放用户级可执行文件的标准目录,优先级在/usr/bin之前,一般发行版默认就在 PATH 里。不想要 root 权限、或者公司安全策略不许动系统目录的,也有对应的本地安装法。
3.1 复制到 /usr/local/bin,注意 rarfiles.lst 别落下
很多人图省事只把 rar 和 unrar 两个文件复制过去,结果一运行就报错。rar 启动时需要读取同目录下的 rarfiles.lst 配置文件,文件里记录了 RAR 支持的文件扩展名和格式描述,少了它,rar 命令会直接拒绝工作。所以复制时三件套要一起走。
cp rar unrar rarfiles.lst /usr/local/bin/ which rar ln -s /usr/local/bin/rar /usr/local/bin/rar6逻辑说明:第一行把三个文件一并复制到/usr/local/bin,rar 和 unrar 是主程序,rarfiles.lst 是配置。复制完用which rar确认命令是否在 PATH 中,如果输出了路径,说明安装成功。第三行创建一个名为 rar6 的符号链接,方便在同时装了多个版本时快速区分。
参数说明:ln -s的语法是“先写目标,再写链接名”,这里目标写/usr/local/bin/rar,链接名写/usr/local/bin/rar6,执行后敲rar6等效于敲rar。符号链接的好处是升级时只要替换/usr/local/bin/rar本体,链接不用动。如果which rar输出为空,说明/usr/local/bin不在 PATH 里,可以执行export PATH=/usr/local/bin:$PATH临时解决,写入~/.bashrc永久解决。
3.2 验证安装:版本输出和一次最小压缩解压
装完不是结束,得确实跑一次压缩和解压,确认二进制在当前系统里能正常工作。这一步别嫌麻烦,见过太多人装完不验证,等到真用的时候才发现动态库缺了或者权限不对。验证要覆盖三个动作:看版本、压缩、测试完整性。
rar unrar mkdir -p /tmp/rar-demo && cd /tmp/rar-demo echo "hello rar" > demo.txt rar a demo.rar demo.txt unrar t demo.rar逻辑说明:直接执行rar不带参数,程序会打印版本号、版权信息和基本用法,出现这些说明二进制能跑起来。mkdir -p创建演示目录,cd进入目录,echo重定向生成一个测试文件。rar a demo.rar demo.txt把 demo.txt 压缩成 demo.rar,最后unrar t demo.rar测试归档完整性。
参数说明:rar a里的a是 add 命令,表示创建压缩包并添加文件,后面先写压缩包名再写源文件。unrar t里的t是 test 命令,逐个文件解压到内存并计算校验和,不落盘。测试通过后输出里会出现 “All OK” 或类似字样。第一次运行 rar 时,终端里可能出现 “Evaluation copy” 提示,这是官方评估版的行为,不影响功能。
3.3 不需要 root 权限的安装方式:本地目录跑 rarlinux
服务器上经常遇到没有 root 权限的情况,比如公共开发机、容器里的普通用户、或者按安全基线收紧过的生产环境。这时不碰系统目录,把 rarlinux 放到用户目录下,再把目录加进 PATH 就行。这种本地安装方式维护起来也简单,升级时删掉旧目录换个新的,不影响系统里其他工具。
mkdir -p ~/opt/rar cp rar unrar rarfiles.lst ~/opt/rar/ export PATH="$HOME/opt/rar:$PATH"逻辑说明:第一行在用户主目录下建一个专属目录,第二行复制三个文件进去,第三行把目录临时加进 PATH。注意第三行只对当前终端会话生效,重新登录后会失效。要永久生效,把export PATH="$HOME/opt/rar:$PATH"写进~/.bashrc或~/.profile末尾,再执行source ~/.bashrc重载。
参数说明:把 PATH 写在前面是为了让新目录优先级高于系统目录,这样即使系统里存在旧版 unrar,也会优先用本地版本。如果不希望被人为改动 PATH,还可以直接创建软链接到~/bin,只要~/bin在 PATH 里就能生效。rarlinux 默认会读取~/.rarrc配置文件,想改默认压缩参数的话,在用户主目录建一个.rarrc文件写入参数项,效果和全局配置一样。
4. rar 与 unrar 参数速查:Linux 下压缩、加密、分卷一次讲清
rarlinux 的命令行参数和 Windows 版 WinRAR 是同一套体系,在 Linux 下用起来非常顺手。但正因为参数和习惯的 tar、zip 不一样,新手容易在几个关键开关上迷糊。这一章把最常见的压缩、加密、分卷、解压场景拆开讲,每一组参数都对应一个具体使用场景。下面这个表可以先存下来,实际用的时候对照着敲。
4.1 压缩一个目录:递归参数与排除规则
压缩目录是最常见的需求,典型场景是打包日志目录或者打包整个项目目录。rar 对目录的处理和 tar 有个明显区别:tar 压缩目录天然递归,而 rar 在指定目录名时会进入目录递归,但如果你写的是通配符,比如*.log,不加-r就只处理当前目录下的文件。所以稳妥起见,统一加-r基本不会错。
cd /var/log rar a -r -m5 -x*.gz -x*.tar nginx-backup.rar nginx/逻辑说明:cd /var/log先进入日志目录,rar a创建压缩包,nginx/是要压缩的目录名。-r开启递归,把 nginx 目录下所有层级文件都纳入。-m5是最大压缩比,-x*.gz和-x*.tar是排除规则,跳过已经压缩过的文件,节省压缩时间。
参数说明:-m后面跟 0 到 5 的数字,0 是仅存储不压缩,速度快但体积大;5 是最高压缩率,对 CPU 占用也最高。日常日志备份用-m3或-m5看机器性能而定。-x可以重复写多个,每个指定一类排除模式。排除规则还支持从文件读取:先准备一个 exclude.txt,每行写一个匹配模式,命令改成-x@exclude.txt,适合排除规则特别多的情况。
压缩完成后用rar l nginx-backup.rar列出压缩包内容,确认文件数量和大小是否符合预期。这里有个经验:第一次跑压缩备份时,列目录检查一遍能,防止后面发现包是坏的。
4.2 保护备份:密码、文件头加密与分卷压缩
备份文件最怕两件事:被人打开看内容、文件太大不好传输。rar 在这两个场景下都有专门参数。-p和-hp都是设置密码,但区别很大:-p只加密文件内容,压缩包里的文件名依然可见;-hp连文件头一起加密,别人拿到包连里面有几个文件都看不到。
分卷压缩则是把一个大压缩包拆成若干指定大小的分卷文件,默认命名是backup.part1.rar、backup.part2.rar这种。
rar a -hpMySecret123 -v100M -rr10 backup-2025.rar /data/mysql_backup/逻辑说明:-hp后面紧跟密码,注意中间不能有空格,这是最容易踩的地方。-v100M指定分卷大小,每 100 兆切一个文件。-rr10添加 10% 的恢复记录,作用是分卷受损时能自行修复,传输可靠率提升不少。目标目录/data/mysql_backup/是源数据,backup-2025.rar 是生成的归档。
参数说明:-hp和-p不能混用,一个是一般加密,一个是文件头加密。用-hp时,解压方也得到处输入密码,而且所有分卷都基于同一把密码。-v的大小单位支持 k、m、g,比如-v50k切 50 千字节,-v1g切 1 吉字节,测试小分卷可以用 k 级单位快速验证逻辑。-rr10推荐比例在 5 到 10 之间,比例越高恢复能力越强但压缩包体积越大。
创建完分卷后,ls -lh backup*查看分卷是否完整生成。分卷文件必须放在同一个目录下才能正常解压,这是 rar 分卷的硬性要求。
4.3 解压操作:按需提取单个文件,测试归档完整性
解压这一侧,unrar 的参数简单得多,但区分两个命令很关键:unrar e把所有文件解压到当前目录,不保留目录结构;unrar x保留压缩包内的目录层级。多数情况下要的是x,用了e可能会有多个同名文件互相覆盖的问题。
unrar t backup-2025.part1.rar unrar l backup-2025.part1.rar | grep "\.sql" unrar x backup-2025.part1.rar /data/restore/逻辑说明:第一行unrar t测试分卷包完整性,它会顺着part1往下找后续分卷,逐个校验。第二行unrar l列出包内文件列表,管道加grep只筛选出.sql文件,这种按需查看方式在大包里非常高效。第三行unrar x保留目录结构解压到/data/restore/,目标目录必须提前存在或结尾带斜杠,unrar 不会自动创建多级不存在的目录。
参数说明:分卷解压时只需要指定第一个分卷文件名,unrar 会自动拼接后续分卷。unrar x后指定目标目录时注意目录末尾的/,写错了解压出来的文件会散落在当前目录。另外unrar t对加密分卷会提示输入密码,自动化脚本里可以用unrar t -p密码 backup.part1.rar预先传参,避免卡在交互提示符上。
5. 避坑手册:rarlinux 使用中常见的 6 个翻车现场
rarlinux 本身很稳定,大部分问题出在环境匹配和命令写法上。这一章整理了六个高频翻车场景,每个都按“现象、原因、解决”的顺序写,基本覆盖了从安装到日常使用的坑。排查问题的时候先对照现象,再顺着原因去找,能省下不少时间。
5.1 现象:执行 rar 报 “No such file or directory”,文件明明就在那里
这是最让人崩溃的报错之一。明明ls -l rar能看到文件,直接执行却提示不存在。第一次遇到的人往往会怀疑网络下载的包坏了,重下一遍还是一样。
原因:这里说的不是文件不存在,而是动态链接器不存在。rarlinux 的二进制依赖/lib64/ld-linux-x86-64.so.2,在精简版容器镜像、轻量发行版或者 32 位系统上,这个路径可能缺失,系统就报了这么个误导性错误。还有一种情况是在 ARM 机器上跑 x64 二进制,同样会出这个错。
解决:先执行file rar确认架构,再执行ldd rar看动态库依赖。确认是环境缺库后,在 Ubuntu 系执行apt install libc6,CentOS/Rocky 系执行yum install glibc。容器里则检查基础镜像是否用了精简版,换标准镜像或直接选用静态链接版本。
5.2 现象:解压 Windows 传来的 RAR,中文文件名全是乱码
从 Windows 同事那里收到压缩包,解压出来文件名显示成乱码,内容本身完好,就是文件名没法看。在 utf-8 环境下系统 locale 不对劲时更明显。
原因:老版本 WinRAR 创建压缩包时,文件名用的是本地语言编码,简体中文环境是 GBK,不是 UTF-8。新版本 rar 默认按 Unicode 存储文件名,但如果包的创建方用了旧版工具,或者创建的包用了“兼容模式”,文件名编码就对不上现代 Linux 的 UTF-8 环境。
解决:解压时临时指定 UTF-8 环境,命令写成LANG=zh_CN.UTF-8 unrar x admin.rar。如果文件名已经解压成乱码,用convmv -f GBK -t UTF-8 --notest 目录名/批量转码。最稳妥的办法还是让发包方在 WinRAR 里把“文件名编码”选成 UTF-8,一劳永逸。这是同事之间协作时最值得传达的一条经验。
5.3 现象:rar 命令报 “Cannot open userfile rarfiles.lst”
压缩命令没跑起来,直接提示打不开 rarfiles.lst,连版本信息都不打印。第一次见到这个报错的人通常很疑惑:我的文件列表里根本没有这个文件。
原因:rar 启动时会读取同目录下的 rarfiles.lst 配置文件,只复制了 rar 二进制,没把配置文件带过去。这种情况大多发生在手动复制安装、或者只复制单个程序到其他机器的时候。
解决:把 rarfiles.lst 从解压目录复制到 rar 所在的目录。如果因为某些原因不想放这个文件,可以用环境变量指定配置目录,执行export RAR=/path/to/rar,让 rar 去指定目录找配置。但这种情况复制文件永远是最省事的做法。
5.4 现象:压缩备份时把备份包套进了备份自身
执行rar a /var/www/backup.rar /var/www后发现压缩时间越来越长,甚至报错、生成的压缩包损坏。打开包列表一看,里面竟然有个 backup.rar,而这个 backup.rar 里又是 backup.rar。
原因:把压缩包输出路径写在了源目录内部。rar 处理到源目录里的 backup.rar 时,会尝试把它也压进去,而这个文件还在被当前进程写入,就形成了套娃循环。实际表现可能是当场报错,也可能是生成了一个损坏的递归包。
解决:压缩包输出路径不要放在源目录内部。习惯是把归档写到另一个目录,比如rar a /backup/www_$(date +%F).rar /var/www。如果输出路径必须在源目录里,加上排除规则-xbackup.rar。这条坑在写定时任务时特别容易触发,因为定时任务里路径都写得很长,稍不注意就套进去了。
5.5 现象:分卷包提示缺少下一个卷,但所有卷都在同一目录
下载了完整的分卷包,放在同一个文件夹里,解压时提示找不到 part2 或 part3,手动翻目录发现文件都在。
原因:分卷文件被改名过,或者后缀大小写不对。.part1.rar改成backup1.rar、.part2.rar改成backup2.rar,unrar 就断链了。还有一类情况是从网盘下载时文件名被附加了额外后缀,比如.rar.1,也会导致识别失败。
解决:检查文件名是否严格保持名字.partN.rar格式,不对就批量改名,一般用rename命令处理。解压时始终指定.part1.rar,而不是中间某个分卷。顺便提醒一句:分卷包传输时尽量打成 zip 再传,或者直接上传全部.part文件,不要单独传某一个。
5.6 现象:老 RAR 包解不开,提示加密算法版本不支持
翻出一个早年存档的 RAR 文件,运行 unrar 提示算法不支持或者直接拒绝解压。文件本身没坏,就是打不开。
原因:RAR 压缩格式有多个版本,最老的一版加密算法用得很原始。新版 rarlinux 的 unrar 已经移除了部分过时算法的支持,特别是用早期国产压缩软件创建的包,偶尔会撞上这种兼容性问题。
解决:确认包真实格式,用file 老文件.rar看输出。不可解时找一台 Windows 机器,用老版本 WinRAR 转成 zip 或者 RAR5 格式再传回 Linux。日常创建新备份时,可以用rar a -ma5 archive.rar 目标明确使用 RAR5 格式,提高未来兼容性。这条坑的教训是:重要归档别永久依赖单一压缩算法,定期做一次格式迁移是值得的。
6. 进阶技巧:把 rar 命令写进自动备份脚本,压缩加校验一次完成
到了这一步,安装和手动使用基本都没问题了。最后分享一个我自己在用的脚本思路:把压缩、加密、校验、日志输出全部包进一个 shell 脚本里,配合 crontab 定时跑。脚本的目标是“出了问题能自己报出来”,而不是闷头压一个包完事。
#!/bin/bash BACKUP_SRC="/data/mysql_backup" BACKUP_DST="/backup" STAMP=$(date +%F-%H%M%S) PASS="DbBackup2025" rar a -rr10 -hp"$PASS" "$BACKUP_DST/mysql_$STAMP.rar" "$BACKUP_SRC" unrar t -p"$PASS" "$BACKUP_DST/mysql_$STAMP.part1.rar" >> /var/log/rarbak.log 2>&1 echo "backup done: $STAMP" >> /var/log/rarbak.log逻辑说明:前几行是变量定义,备份源、目标目录、时间戳、密码各占一个变量,方便后续修改。rar a创建带恢复记录和文件头加密的压缩包,unrar t紧接着测试归档完整性。测试结果追加写入日志,方便事后确认备份有没有成功。如果压缩或测试失败,脚本退出前会把错误留在日志里,第二天巡检时一眼就能看到。
参数说明:-hp后面引号不能省,变量取值里如果有特殊字符,引号能保证密码原样传给 rar。>>是追加写日志,不会覆盖历史记录。测试命令里指定part1就够,unrar 会自动拼接后续分卷。如果备份中用到了分卷,注意-v参数不要写在第一条命令里,否则测试时要确认所有分卷都在位。
配套的定时任务一般长这样:
0 2 * * * /usr/local/bin/rarbak.sh意思是每天凌晨两点执行一次。跑一段时间后会得到一个经验:日志里的 “All OK” 不稀有,真正要紧的是记录“哪一天没有输出”。所以我在脚本末尾还会加一条清理逻辑,删除 7 天前的旧日志文件,避免日志占满磁盘。第一次写这个脚本时我也没加校验,结果跑了一周才发现归档早就因为磁盘空间不足失败了。后来养成一个习惯,每次压缩完立刻测试、测试结果写日志、日志定期轮转,这三步缺一不可。希望帮到你。
本文还有配套的精品资源,点击获取