linux--001 linux极限压缩

简介: linux入门笔记篇

先来三段花里胡哨的命令

小技巧

  • 组合压缩有时会进一步节约空间
  • Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO 有的时候组合使用会减少空间 有的时候单独压缩一个文件会变大 这取决于你选择的算法与你中彩票的运气
  • 7z+lzma足以解决大多数问题 显示进度 压缩率 数据完整性 速度 是完美的六边形战士
    7zip
    ```shell
    sudo 7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=200m -mf -mhc -mhcf yourfile.7z ./yourfile.dmp &

解压

sudo 7z x manager.7z -r -o /home/xx

解释

7z

-t7z 创建7z文件
-m0=lzma 使用 lzma 压缩方法,该方法最优了吧
-mx=9 压缩等级 = 9 (超级)
-mfb=64 fast bytes for LZMA = 64
-md=32m 字典大小 = 32 m
-ms=200m -- 开启固实模式,设置固实数据流大小为200MB。
-mf -- 开启可执行文件压缩过滤器。
-mhc -- 开启档案文件头压缩。
-mhcf -- 开启档案文件头完全压缩
& 在Linux后台运行

##### tar lzma
```shell
# 压缩
sudo tar -c --lzma -f test.tar.lzma  bigFile 
# 解压
unlzma test.tar.lzma
tar xvf test.tar
tar进度条
sudo  apt-get install pv
tar -cf - questions.sql | pv -s $(du -sb questions.sql | awk '{print $1}') | gzip > question.tar.gz

# 详解 
-cf    创建 指定目标 
-*     代表将需要压缩的数据输出到 stdout(标准输出),这样管道的后面才可以接收到需要处理的数据。
pv 将输入复制一遍然后输出到 stdout 
pv -s * 获取需要处理的所有数据的大小(单位:字节),mac 下 du -sk 获取到的数值是以 k 为单位的,而其他 linux 系统则不一样,参数需要改为 du -sb,同时也不需要再乘以 1024。
gzip 命令把前面的输出处理之后保存到 question.tar.gz。

# 解压
pv question.tar.gz | tar -zxf -
bzip2
 bzip2 -k install.log.syslog
这两个命令都使用了lzma压缩 压缩大文件结果相同

参数详解(很多工具参数(代表的字母)互通 效果一样)

# tar
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
   『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!

# 7z
7-Zip [32] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
       [<@listfiles...>]

<Commands>
  a : Add files to archive
  b : Benchmark
  d : Delete files from archive
  e : Extract files from archive (without using directory names)
  h : Calculate hash values for files
  i : Show information about supported formats
  l : List contents of archive
  rn : Rename files in archive
  t : Test integrity of archive
  u : Update files to archive
  x : eXtract files with full paths

<Switches>
  -- : Stop switches parsing
  -ai[r[-|0]]{@listfile|!wildcard} : Include archives
  -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives
  -ao{a|s|t|u} : set Overwrite mode
  -an : disable archive_name field
  -bb[0-3] : set output log level
  -bd : disable progress indicator
  -bs{o|e|p}{0|1|2} : set output stream for output/error/progress line
  -bt : show execution time statistics
  -i[r[-|0]]{@listfile|!wildcard} : Include filenames
  -m{Parameters} : set compression Method
    -mmt[N] : set number of CPU threads
  -o{Directory} : set Output directory
  -p{Password} : set Password
  -r[-|0] : Recurse subdirectories
  -sa{a|e|s} : set Archive name mode
  -scc{UTF-8|WIN|DOS} : set charset for for console input/output
  -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files
  -scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands
  -sdel : delete files after compression
  -seml[.] : send archive by email
  -sfx[{name}] : Create SFX archive
  -si[{name}] : read data from stdin
  -slp : set Large Pages mode
  -slt : show technical information for l (List) command
  -snh : store hard links as links
  -snl : store symbolic links as links
  -sni : store NT security information
  -sns[-] : store NTFS alternate streams
  -so : write data to stdout
  -spd : disable wildcard matching for file names
  -spe : eliminate duplication of root folder for extract command
  -spf : use fully qualified file paths
  -ssc[-] : set sensitive case mode
  -ssw : compress shared files
  -stl : set archive timestamp from the most recently modified file
  -stm{HexMask} : set CPU thread affinity mask (hexadecimal number)
  -stx{Type} : exclude archive type
  -t{Type} : Set type of archive
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options
  -v{Size}[b|k|m|g] : Create volumes
  -w[{path}] : assign Work directory. Empty path means a temporary directory
  -x[r[-|0]]{@listfile|!wildcard} : eXclude filenames
  -y : assume Yes on all queries


# zip
-1 : 最快压缩,压缩率最差。
-9 : 最大压缩,压缩率最佳。
-b : 暂存文件的路径。这个参数一般在要产生的 zip 文件存在,而硬盘现有空间不足时。
-c : 替新增或更新的文件增加一行注解。
-d : 从 zip 文件移出一个文件。
-D : 不要在 zip 文件中储存文件的目录信息。
-f : 以新文件取代现有文件。
-F : 修复已经损毁的压缩文件。
-g : 将文件压缩附加到 zip 文件中。
-h : 显示辅助说明。
-i : 指定要含入的某些特定文件。
-j : 只储存文件的名称,不含目录。
-k : 强迫使用 MSDOS 格式文件名。
-l : 将 CR ( Carriage Return ) LF ( Line Feed ) 转换成 LF,一般是要将 MS-DOS 上的文本文件压缩后拿到 UNIX 下使用时才使用此参数。这只适用于文本文件 ( .txt ),如果用于二进制文件则会造成二进制文件损毁。
-L : 显示 zip 命令的版权。
-m : 将特定文件移入 zip 文件中,并且删除特定文件。
-n : 不压缩特定扩展名的文件。
-o : 将 zip 文件的时间设成最后修正 zip 文件的时间。
-q : 安静模式,不会显示相关讯息和提示。
-r : 包括子目录。
-t : 只处理 mmddyy 日期以后的文件。
-T : 测试 zip 文件是否正常。
-u : 只更新改变过的文件和新文件。
-v : 显示版本资讯或详细讯息。
-x : 不需要压缩的文件。
-y : 将 symbolic link 压缩,而不是压缩所连结到的文件。
-z : 为 zip 文件增加注解。
-# : 设定压缩速度,-0 表示不压缩,-1 表示最快速度的压缩,
-9 :表示最慢速度的压缩 ( 最佳化的压缩 ),预设值为 -6。
-@ : 从标准输入读取文件名称。

# bzip2
-c, --stdout
    将数据压缩或解压缩输出至标准输出
-d, --decompress
    强制解压缩。 bzip2, bunzip2 以及 bzcat 实际上是同一个程序,进行何种操作将根据程序名确定。 指定该选项后将不考虑这一机制,强制 bzip2 进行解压缩
-z, --compress
    -d 选项的补充:强制进行压缩操作,而不管执行的是哪个程序
-t, --test
    检查指定文件的完整性,但并不对其解压缩。 实际上将对数据进行实验性的解压缩操作,而不输出结果
-f, -force
    强制覆盖输出文件。通常 bzip2 不会覆盖已经存在的文件。该选项还强制 bzip2 打破文件的硬连接,缺省情况下 bzip2 不会这么做。
-k, --keep
    在压缩或解压缩时保留输入文件(不删除这些文件)
-s, --small
    在压缩、解压缩及检查时减少内存用量。 采用一种修正的算法进行压缩和测试, 每个数据块仅需要 2.5 个字节。 这意味着任何文件都可以在 2300K 的内存中进行解压缩, 尽管速度只有通常情况下的一半。在压缩时,-s 将选定 200K 的块长度,内存用量也限制在 200K 左右, 代价是压缩率会降低。 总之,如果机器的内存较少(8MB 或更少), 可对所有操作都采用 -s 选项
-q, --quiet
    压制不重要的警告信息。属于 I/O 错误及其它严重事件的信息将不会被压制
-v, --verbose
    详尽模式——显示每个被处理文件的压缩率。 命令行中更多的 -v 选项将增加详细的程度, 使 bzip2 显示出许多主要用于诊断目的信息
-L, --license, -V, --version
    显示显示软件版本、许可证条款及分发条件
-1 (or --fast) to -9 (or --best)
    在压缩时将块长度设为 100 k、200 k ... 900 k。 对解压缩没有影响
--
    将所有后面的命令行变量看作文件名,即使这些变量以减号 - 打头。 可用这一选项处理以减号 - 打头的文件名, 例如:bzip2 -- -myfilename
--repetitive-fast, --repetitive-best
    这些选项在 0.9.5 及其以上版本中是多余的。 在较早的版本中,这两个选项对排序算法的行为提供了一些粗糙的控制,有些情况下很有用。 0.9.5 及其以上版本采用了改进的算法而与这些选项无关
目录
相关文章
|
5天前
|
Shell Linux API
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解压缩文件 unzip命令 使用指南
69 0
|
5天前
|
算法 Shell Linux
【Shell 命令集合 备份压缩 】Linux 处理lha格式 lha命令 使用指南
【Shell 命令集合 备份压缩 】Linux 处理lha格式 lha命令 使用指南
44 0
|
5天前
|
存储 监控 Shell
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
41 0
|
5天前
|
Shell Linux 编译器
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
42 0
|
5天前
|
存储 算法 Shell
【Shell 命令集合 备份压缩 】⭐⭐Linux 压缩和归档工具 zip命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐Linux 压缩和归档工具 zip命令 使用指南
44 0
|
5天前
|
存储 Shell Linux
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
【Shell 命令集合 备份压缩 】Linux 解码uuencode编码的文件 uudecode 命令 使用指南
39 0
|
5天前
|
安全 Shell Linux
【Shell 命令集合 备份压缩 】Linux将可执行文件压缩成gzip格式 gzexe命令 使用指南
【Shell 命令集合 备份压缩 】Linux将可执行文件压缩成gzip格式 gzexe命令 使用指南
53 0
|
5天前
|
存储 Shell Linux
【Shell 命令集合 备份压缩 】Linux 恢复由dump命令创建的备份文件 restore命令 使用指南
【Shell 命令集合 备份压缩 】Linux 恢复由dump命令创建的备份文件 restore命令 使用指南
39 0
|
5天前
|
存储 算法 Shell
【Shell 命令集合 备份压缩 】⭐⭐⭐Linux 解压缩gz工具 gzip命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐⭐Linux 解压缩gz工具 gzip命令 使用指南
43 0
|
5天前
|
算法 Shell Linux
【Shell 命令集合 备份压缩 】⭐⭐Linux gz文件压缩解压工具 gunzip命令 使用指南
【Shell 命令集合 备份压缩 】⭐⭐Linux gz文件压缩解压工具 gunzip命令 使用指南
37 0