compact/extract 压缩/解压
compact/extract 压缩/解压 .tar.gz 和 .tgz .tgz 和 .tar.gz 是同一个东西, .tgz 可以认为是 .tar.gz 是简写, 在远古时代比如 DOS 系统, 文件扩展名只能是三个字符, 所以有了 .tgz, 后来限制解除之后就能支持 .tar.gz 这种后缀了, 后者能更清晰地表达打包格式和压缩方式. https://stackoverflow.com/questions/11534918/are-tar-gz-and-tgz-the-same-thing 这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多 CPU 的,而且可以得到一个非常理想的压缩率 默认 tar 打包和系统默认的压缩工具是单线程的,pigz 是 gzip 的多线程实现, 默认用当前逻辑 cpu 个数来并发压缩,无法检测个数的话,则并发8个线程 压缩 tar -czvf all.tar.gz *.jpg # 排除掉文件 tar -czvf tomcat.tar.gz --exclude=tomcat/logs tomcat # 设置压缩级别 GZIP=-9 tar cvzf file.tar.gz /path/to/directory 压缩到指定目录 tar -zcvf /data/tmp/foo.tar.gz /data/server/source # 解压到指定目录 tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.6.1.tgz tar.gz, tgz 解压 tar -xf foo.tar.gz # 解压 tar.gz 文件时, 不使用 z 参数, 貌似 tar 会检测文件类型 自动 用 gzip 解压... tar xvf all.tar.gz tar zxvf all.tar.gz tar -zxvf all.tar.gz 解压到指定目录 tar zxvf /path/to/foo.tar.gz -C /path/to/target/dir/ tar -zxvf /path/to/foo.tar.gz -C /path/to/target/dir/ sudo pacman -S pigz # 压缩 tar --use-compress-program=pigz -cvpf package.tgz ./package # 解压 tar --use-compress-program=pigz -xvpf package.tgz -C ./package #tar –use-compress-program=pigz表示指定pigz来进行打包 #c表示create创建 x表示extract解压 v表示verbose详细 f表示指定压缩文件 C表示指定目录 #-cvpf package.tgz ./ 表示将./package目录打包为package.tgz #-xvpf package.tgz -C ./表示将package.tgz解压到./package目录下 \-v, --verbose #详细显示处理的文件 \-f, --file [HOSTNAME:]F #指定存档或设备 (缺省为 /dev/rmt0) \-z, --gzip, --ungzip #用 gzip 对存档压缩或解压 \-x, --extract, --get #从存档展开文件 解压多个文件 ls *.gz|xargs -t -n1 gunzip gunzip *.gz .rar # 解压 unrar x foo.rar # 压缩 rar e FileName.rar # 解压 rar a FileName.rar 解压并指定输出目录 gunzip -c /data/tmp/foo.tar.gz | tar xf - -C /data/server/bar .7z yum install p7zip pacman -S p7zip sudo apt install p7zip-full p7zip-rar # 压缩 7z a -t7z -r manager.7z /home/manager/* # a 代表添加文件/文件夹到压缩包 # -t 是指定压缩类型 一般我们定为7z # -r 表示递归所有的子文件夹,manager.7z 是压缩好后的压缩包名,/home/manager/* 是要压缩的目录,*是表示该目录下所有的文件。 7z x filename.7z .zip pacman -S zip unzip zip 压缩 zip all.zip *.jpg # 指定压缩文件目录 zip ~/all.zip *.jpg # 压缩的是个文件夹, -r 表示调用递归压缩 zip -r temp.zip temp # 密码 zip -P password0 foo.zip foo.txt # 指定压缩某几个文件 zip foo.zip foo.txt bar.txt zip 分卷压缩 # 分卷压缩的话,需要先将文件打包成一个zip包,然后执行 zip -s SIZE origin.zip --out new.zip # SIZE为分卷的大小4m,4g,4t等 # 解压的时候需要先将它合并才能正常解压 zip spiltfile.zip -s=0 --out single.zip zip 解压 unzip all.zip unzip -o -d /home/sunny myfile.zip # 解压 多个文件 ls *.zip | xargs -n1 unzip -o # -o: 不必先询问用户,unzip执行后覆盖原有的文件; # -P<密码>: 使用zip的密码选项; # -d 指定解压的目标目录 # 解压最近4天的zip文件 find . -maxdepth 1 -mtime -4 -type f -name "*.zip"|xargs -t -n1 unzip zip 解压并指定目录 unzip /path/to/source.zip -d /path/to/target/path Zstandard, zstd, .zst 解压 zstd -d foo.zst zstd 不能压缩目录, -r 参数会把目录里的文件压缩成单独的文件 ...