文章目录
Linux下怎样压缩/解压缩文件/文件夹
令:FileName表示文件名;name表示文件名或者目录名;DirName表示目录名。
1.vim
预览压缩包:vim FileName.tar.xz
2.rar
安装:sudo apt install rar
解压到当前目录:rar e FileName.rar。e: extract的e。
解压到指定目录:rar x FileName.rar DirName/。x: extract的x。DirName后面一定要加“/”。
压缩:rar a FileName.rar DirName。DirName后加不加“/”都行。如果要指定目标文件路径,可以在FileName指定。
3.zip
解压到当前目录:unzip FileName.zip
解压到指定目录:unzip FileName.zip -d DirName
压缩:zip FileName.zip -r DirName
4.tar
解包到当前目录:tar -xvf FileName.tar。x:解压文件(extract里的x)。v:打印详细信息(verbose)。f:指定文件名(file)。
解包到指定目录:tar -xvf FileName.tar -C DirName。C:解压到指定目录。凡是用tar命令解压,都可以使用这个选项来指定输出路径,如tar.gz和tar.xz。
打包:tar -cvf FileName.tar files。files可以是文件夹名,也可以是表示文件的正则表达式(如*.docx)。c:压缩(compress)。尤其要注意:上面的files不要使用绝对路径如/usr/share/fonts,甚至~也不行,因为会被翻译成/home/用户名。tar加入文件时会把文件的相对位置也加进去,解压出来的文件都根据它们的相对位置放到解压到的目录。因此进行压缩时要cd到要压缩的文件或文件夹所在目录。
5.gz
解压到当前目录:gzip -d FileName.gz。d:解压(decompress)。会把原来的FileName.gz删除并生成解压后的文件。可加上选项k保留原文件:gzip -dk FileName.gz。k:keep。
压缩到当前目录:gzip FileName。会把原文件删掉并创建FileName.gz。
gzip的常用选项:k:保留源文件(keep);v:打印详细信息(verbose)。
6.tar.gz
顾名思义,.tar.gz就是对tar文件用gzip压缩得到的文件。所以解压可以先解压gz,再解压tar,压缩也可以先压缩成tar,再压缩成gz。也可以使用一条命令完成解压或压缩。
解压到当前目录:tar -zxvf FileName.tar.gz。z表示gz。
解压到指定目录:tar -zxvf FileName.tar.gz -C path。
压缩:tar -zcvf FileName.tar.gz files。其中files可以是文件夹名,也可以是表示文件的正则表达式(如*.jpg)。
7.xz
xz格式压缩率极高,但是压缩和解压也极慢。
单线程解压:解压到当前目录:xz -d FileName.xz。会自动把源文件删除,然后生成文件FileName。可以用选项k保存源文件:xz -dk FileName.xz。k:keep。解压为指定文件名:xz -dc FileName.xz > FileName2。c:把压缩文件输出到stdout。不删除源文件。
单线程压缩:压缩到当前目录:xz -z FileName。会自动把原文件删掉,然后生成FileName.xz。可以用选项k保存原文件:xz -zk FileName。
多线程压缩:xz -zkT0 FileName。T: 使用多线程,后面跟线程数。如果参数是0,则表示使用“机器核心数”个线程。这种方法只能压缩文件。多线程压缩目录的方法见.tar.xz。
8.tar.xz
顾名思义,就是把文件先打包成tar,再压缩成xz。解压时可以先解压xz得到tar文件,再解压tar。
也可以使用一条命令完成解压或压缩。
单线程解压:tar xJf name.tar.xz。x:extract。J:xz。
单线程压缩:tar cJf name.tar.xz name。c:compress。
多线程解压:xz -dcT0 FileName.tar.xz | tar -xC DirName。tar不带f选项,表示从stdin中读取。
多线程压缩:tar -cf - name | xz -T0 -c > FileName.tar.xz。这种方法可以压缩文件,也可以压缩目录。tar如果输出的文件名是“-”,则会输出到stdout。如果xz没有指定源文件则会从stdin中读取。
9.bzip2
压缩解压过程都会把源文件删掉。如果要保留,选项里加个k就好了(keep)。多线程用pbzip2。如果不指定线程数,就自动检测能用多少个线程。
解压:pbzip2 -dp线程数 FileName.bz2。生成的文件是FileName,会自动把FileName.bz2删掉。
压缩:pbzip2 -zp线程数 FileName。生成的文件是FileName.bz2。
其他压缩选项:–fast: 牺牲压缩率,提高压缩和解压速度。–best(默认): 牺牲压缩速度,提高压缩率。
10.tar.bz2
单线程压缩:tar -cjf name.tar.bz2 name。
多线程解压:pbzip2 -cdp线程数 b.tar.bz2 | tar -xC DirName。