Linux zip命令:压缩文件或目录

等等,我昨天整理项目资料时用过这个。

那天在办公室的Ubuntu虚拟机上,我得把三个月的用户行为日志打包发给隔壁组做分析。
文件堆在桌面上,access.log, error.log,还有各应用的服务器日志,散了几十个小文件。
想着嫌麻烦,顺手就zip -r logs.zip logs,然后顺手zip -m tiny.png tiny.png删了那个测试用的截图,顺手zip -9 reports.zip reports删了那些报告草稿,最后zip -u logs.zip access.log.2 01 9 09 01 ,因为忘了加那个最新的日志。
zip命令窗口一闪而过,没看选项,就想着"搞定"。
结果发给隔壁组张工,他回说"文件打不开",我愣了一下,发现我忘了加参数,直接把文件压缩成加密包了,张工那边没密码。

zip -r logs.zip logs -0啊,应该用无加密压缩。
Linux这东西,记得住用哪个还行,选项容易混。
尤其是那个-q静默压缩,上次装软件时把日志全压缩静默了,发现不了问题,折腾半天才发现。
不过有时候静默的好,比如服务器自动备份,不显示进度也行。

unzip倒是没出过错。
上次解压客户给的固件更新包,里面有个data.zip,解压到指定目录用-d,客户说文件少了,后来发现他用了unzip -o覆盖了同名的旧配置文件,导致更新失败。
提醒他下次用unzip -n,别用-o,这东西太容易踩坑了。

等等,还有个事。
那个zip -u更新压缩包,有时候挺烦的。
比如我维护的配置包,里面有个脚本版本是1 .0,后来发现bug改成了1 .1 用zip -u config.zip script.sh,它会把整个script.sh替换进去,而不是只更新1 .1 部分。
如果文件很大,相当于重新传了整个文件。
这时候用tar cvzf config.tar.gz config_dir/,更新某个文件用tar rvf config.tar.gz new_file,好像更合理。
不过zip压缩速度确实快,tar慢点。

linux .zip文件 解压缩命令的简单使用

我记得有一次,在公司的服务器上,有个紧急的项目需要用到某个.zip文件,但那个文件被压缩得密密麻麻,我手忙脚乱地打开了终端,输入了unzip命令,然后发现忘记指定解压目录了。
当时我有点慌,但冷静下来想想,其实很简单,只需要在命令后面加上-d参数,后面跟上目标目录路径。
比如,我想把文件解压到/data/newproject,那就输入unzip -d /data/newproject projectfile.zip。
结果,文件顺利解压到了指定目录,我长舒了一口气。
这事儿教会了我,有时候解决问题,就是那么简单几个字母的距离。
等等,还有个事,我突然想到,如果解压过程中遇到了乱码问题,比如GBK编码的中文文件名,可以在命令中加上-OGBK参数来解决。

Linux文件压缩与解压教程_Linux tar、gzip与zip命令详解

哎哟,咱们聊聊Linux文件压缩和解压那些事儿。
说实话,这可是系统管理里的基本功,像什么节省磁盘空间啊,方便文件传输啊,都离不开这招。

一、得先认识几个核心命令:
1 . tar命令:这可是打包神器,它自己不压缩文件,而是把文件或目录打包成一个.tar文件。
通常得跟别的压缩工具一起用。


打包文件:tar cvf archive.tar file1 file2 directory1
解包文件:tar xvf archive.tar
结合gzip压缩打包:tar czvf archive.tar.gz file1 file2 directory1
结合gzip解压解包:tar xzvf archive.tar.gz
列出归档内容:tar tvf archive.tar
指定目录解压:tar xvf archive.tar -C /tmp
2 . gzip命令:这玩意儿专搞单个文件,压缩后缀是.gz,不能直接压缩目录,但可以跟tar搭配。


压缩文件:gzip file.txt,生成file.txt.gz,原始文件会被删。

解压文件:gzip -d file.txt.gz 或 gunzip file.txt.gz
3 . zip命令:这货更通用,能压缩文件和目录,跨平台用得挺多。


压缩文件:zip archive.zip file1 file2 directory1
压缩目录(递归):zip -r archive.zip directory1
解压文件:unzip archive.zip
4 . 其他压缩工具:

bzip2 :压缩比更高,生成.bz2 文件。

压缩:bzip2 file.txt
解压:bzip2 -d file.txt.bz2 或 bunzip2 file.txt.bz2
xz:压缩比最高,但速度慢,生成.xz文件。

压缩:xz file.txt
解压:xz -d file.txt.xz 或 unxz file.txt.xz
二、怎么选合适的压缩命令?

兼容性:要跟Windows啥的共享文件,zip格式最好。

压缩比:要最高压缩比,xz是首选,但得考虑时间。

速度:要快,gzip是首选。

打包多个文件/目录:用tar命令加其他压缩工具。

三、高级技巧:
1 . 管道符:这玩意儿可以把一个命令的输出给另一个命令当输入,简化命令。

压缩:tar cvf file1 file2 directory1 | gzip > archive.tar.gz
解压:gzip -dc archive.tar.gz | tar xvf -
2 . 提高大文件压缩效率:
选择合适的压缩算法:比如xz、gzip。

调整压缩级别:gzip有-1 到-9 ,-1 最快,-9 压缩比最高。

使用多线程压缩:比如pigz、pbzip2 、pxz。

排除不必要的文件:压缩前排除临时文件、日志文件等。

使用固态硬盘(SSD):提高速度。

3 . 常见错误排查:
权限错误:检查权限,必要时修改。

磁盘空间不足:检查磁盘空间,清理文件或增加空间。

文件损坏:重新下载或用其他工具解压。

命令选项错误:仔细阅读帮助文档或教程。

压缩算法不匹配:确保使用正确的解压命令。

文件路径错误:使用绝对路径或相对路径。

内存不足:关闭其他程序或增加内存。

掌握这些技能,能帮你有效节省空间,方便文件传输,尤其在服务器维护和数据备份时,那可是非常有用的。