Linux文件压缩和解压缩命令使用详解
在Linux系统中,我们通常使用的文件压缩命令有:bunzip2 , bzip2 , cpio , gunzip , gzip ,split(切割文件) , zgrep(在压缩文件中寻找匹配的正则表达式), zip ,unzip, tar ,rar。
最后四个是我比较常用的,今天的笔记就写这四个的好了。
1、tar:
tar命令:tar [选项...] [FILE]...
输入“tar -?”获取相关帮助信息,tar的帮助文档给出示例如下:
示例
tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件archive.tar。
tar -tvf archive.tar # 详细列举归档文件 archive.tar中的所有文件。
tar -xf archive.tar # 展开归档文件 archive.tar中的所有文件。
如果是要压缩文件夹的话,输入:
tar -cvf dirArchive.tar /dirName
同样的,要将归档文件解压到特定文件夹的话,则是:
tar -xvf dirArchive.tar /dirName
下面复习一下。我们先人为做个文件夹出来,里面放置若干文件夹和文件:
我们首先创建一个tar文件,先压缩一个文件夹(testdir):
tar -cf testdir.tar testdir
然后列出该压缩包里的结构:
接着我们向这个压缩包追加文件:
当然了,上述单步操作没必要做了,压缩包里面已经有这个文件。
然后再看看这个压缩包里的结构:
如果使用示例中的-v选项,则会将压缩包里的文件属性全部列出。包括权限,创建人,字节大小,修改时间和文件名:
从tar压缩文件中解压并显示文件列表:
一般来说比较常用到的选项有主操作选项:
另外再练习一下其他的一些用法:
1、当压缩testdir目录的时候,需要将文件夹根路径内的test文件排除:
2、只压缩比指定时间更新的文件:
3、压缩所有文件名前缀为“te”的文件或文件夹(或者压缩后缀为“st”的文件):
最后补充一下常用的选项:
-p, --preserve-permissions, --same-permissions
保留解压文件权限信息(默认只为超级用户服务)
--preserve 与 -p 和 -s 一样
--same-owner 尝试解压时保持所有者关系一致(超级用户默认此项)
-r, --append 追加文件至归档结尾
-u, --update 仅追加比归档中副本更新的文件
-k, --keep-old-files 解压时不要替换存在的文件
--keep-newer-files
不要替换比归档中副本更新的已存在的文件
--no-overwrite-dir 保留已存在目录的元数据
--overwrite 解压时重写存在的文件
--overwrite-dir
解压时重写已存在目录的元数据(默认)
--recursive-unlink 解压目录之前先清除目录层次
--remove-files 在添加文件至归档后删除它们
-N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE 只保存比 DATE-OR-FILE 更新的文件
2、rar:
rar command -switch 1 -switch N archive files...@listfiles... path_to_extract/
Linux系统的默认软件包里是不包含rar压缩工具的,所以我们先安装rar:
sudo apt-get install rar
command选项只可以从给出的选项中输入一个(且只能一个),我们看一下它提供的命令列表:
使用举例,比如说现在我们要进行文件压缩:
在完成压缩之后,我们可以通过命令l获取压缩文件内具体的结构信息:
甚至可以通过命令p将压缩文件内的所有信息输出到控制台:
switch N部分则提供了一些功能性的选项。
比如说以追加性的方式更新压缩文件可选用-ad:
或者说想把某个文件排除在外可以选用开关-x(注意,要排除的串要紧跟在x后面,不用加任何符号),比如我们这里想要将文件夹根路径下凡是“te”开头的文件都排除:
还有加密,用开关-p,同样的,密码紧随p后面即可:
如果相对文件进行解压或者直接打开文件,就会要求你输入密码:
除此之外,还有一些常用的选项有:
ag[format] Generate archive name using the current date
cl Convert names to lower case
cu Convert names to upper case
df Delete files after archiving
ed Do not add empty directories
dw Wipe files after archiving
其他的命令和开关可参照帮助手册。
3、zip , unzip:
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
zip和unzip的使用方法是比较简单的,甚至连帮助文档都写得很简单,所以也就没什么笔记好写的了,直接看帮助文档即可。
linux zip 命令详解
功能说明:压缩文件。
语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b 工作目录][-ll][-n 字尾字符串][-t 日期时间][-压缩效率][压缩文件][文件...][-i 范本样式][-x 范本样式]
补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。
参 数:
-A 调整可执行的自动解压缩文件。
-b工作目录 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在线帮助。
-i范本样式 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n字尾字符串 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t日期时间 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS操作系统的文件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x范本样式 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-压缩效率 压缩效率是一个介于1-9的数值。
linux unzip 命令详解
功能说明:解压缩zip文件
语 法:unzip [-cflptuvz][-agCjLMnoqsVX][-P 密码][.zip文件][文件][-d 目录][-x 文件] 或 unzip [-Z]
补充说明:unzip为.zip压缩文件的解压缩程序。
参 数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P密码 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
-d目录 指定文件解压缩后所要存储的目录。
-x文件 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令
范例:
zip命令可以用来将文件压缩成为常用的zip格式。unzip命令则用来解压缩zip文件。
1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip:
# zip -r yasuo.zip abc.txt dir1
2.我下载了一个yasuo.zip文件,想解压缩:
# unzip yasuo.zip
3.我当前目录下有abc1.zip,abc2.zip和abc3.zip,我想一起解压缩它们:
# unzip abc/?.zip
注释:?表示一个字符,如果用*表示任意多个字符。
4.我有一个很大的压缩文件large.zip,我不想解压缩,只想看看它里面有什么:
# unzip -v large.zip
5.我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了
# unzip -t large.zip
6.我用-v选项发现music.zip压缩文件里面有很多目录和子目录,并且子目录中其实都是歌曲mp3文件,我想把这些文件都下载到第一级目录,而不是一层一层建目录:
# unzip -j music.zip
绛旓細褰 tar 鍛戒护鍚屾椂鍋氭墦鍖呭帇缂╃殑鎿嶄綔鏃讹紝鍏跺熀鏈牸寮忓涓嬶細[root@localhost ~]#tar [閫夐」] 鍘嬬缉鍖 婧鏂囦欢鎴栫洰褰曟澶勫父鐢ㄧ殑閫夐」鏈変互涓 2 涓紝鍒嗗埆鏄細-z锛鍘嬬缉鍜岃В鍘嬬缉 .tar.gz 鏍煎紡锛 -j锛氬帇缂╁拰瑙e帇缂 .tar.bz2鏍煎紡銆 銆愪緥 1銆鍘嬬缉涓庤В鍘嬬缉 .tar.gz鏍煎紡銆俒root@localhost ~]# tar -zcvf tmp...
绛旓細1銆乬zip: 鍘嬬缉鍚庣殑鏂囦欢鍚庣紑涓.gz銆傜敤娉曪細gzip+鏂囦欢璺緞 锛屽帇缂╁畬鎴愬悗浼氬垹闄ゅ師鏂囦欢銆2銆乥zip2:鍘嬬缉鍚庣殑鏂囦欢鍚庣紑涓.bz2.锛堟瘮gzip鏈夌潃鏇村ぇ鍘嬬缉姣旂殑鍘嬬缉宸ュ叿锛屽彈鐢ㄦ牸寮忎笌鍏剁浉浼笺傦級-k:鍘嬬缉鎴栬呰В鍘嬫椂鍙互淇濈暀鍘熸枃浠躲3銆亃ip: 鏃㈠綊妗e張鍘嬬缉鐨勫伐鍏凤紝鍙互鍘嬬缉鐩綍锛屼互涓婁笁涓笉鑳斤紝榛樿涓嶅垹闄ゅ師鏂囦欢銆4銆乼a...
绛旓細鍦↙inux绯荤粺涓,鎴戜滑閫氬父浣跨敤鐨勬枃浠跺帇缂╁懡浠ゆ湁:bunzip2 , bzip2 , cpio , gunzip , gzip ,split(鍒囧壊鏂囦欢) , zgrep(鍦ㄥ帇缂╂枃浠朵腑瀵绘壘鍖归厤鐨勬鍒欒〃杈惧紡), zip ,unzip, tar ,rar銆 鏈鍚庡洓涓槸鎴戞瘮杈冨父鐢ㄧ殑,浠婂ぉ鐨勭瑪璁板氨鍐欒繖鍥涗釜鐨勫ソ浜嗐 1銆乼ar: tar鍛戒护:tar [閫夐」...] [FILE]... ...
绛旓細Linux涓嬪帇缂╁拰瑙e帇gz鏂囦欢甯哥敤鐨勫懡浠ゆ槸gzip鍜実unzip銆1. 鍘嬬缉鏂囦欢涓篻z鏍煎紡锛氫娇鐢╣zip鍛戒护鍙互灏嗘枃浠跺帇缂╂垚.gz鏍煎紡銆傝娉曚负锛歜ash gzip [鏂囦欢]渚嬪锛岃鍘嬬缉涓涓悕涓篹xample.txt鐨勬枃浠讹紝鍙互浣跨敤浠ヤ笅鍛戒护锛歜ash gzip example.txt 杩欎細灏唀xample.txt鏂囦欢鍘嬬缉鎴恊xample.txt.gz銆俫zip鍛戒护浼氱洿鎺ユ浛鎹㈠師鏂囦欢锛屽洜姝...
绛旓細涓銆佸懡浠ゆ牸寮忥細tar -zxvf 銆愬帇缂╁寘鏂囦欢鍚.tar.gz銆 -C 銆愯矾寰勩/ 娉ㄩ噴锛氳В鍘.tar.gz鏍煎紡鍒版寚瀹氱殑鐩綍涓 渚嬪锛歵ar -zxvf japan.tar.gz -C /tmp/ 浜屻佸懡浠ゆ牸寮忥細tar -jxvf 銆愬帇缂╁寘鏂囦欢鍚.tar.bz2銆 -C 銆愯矾寰勩/ 娉ㄩ噴锛氳В鍘.tar.bz2鏍煎紡鍒版寚瀹氱殑鐩綍涓 渚嬪锛歵ar -zxvf japan.tar.bz2...
绛旓細涓夌瑙e帇鍛戒护鍒嗗埆涓猴細unzip锛宐zip2 -d锛寀nzip text.zip 閽堝linux骞冲彴涓嬩笉鍚岀殑鍘嬬缉鏂囦欢绫诲瀷閫夋嫨涓嶅悓鐨勮В鍘鏂囦欢鍛戒护锛1銆乬zip锛実zip鏄疓NUzip鐨勭缉鍐欙紝瀹冩槸涓涓狦NU鑷敱杞欢鐨鏂囦欢鍘嬬缉绋嬪簭銆傚畠鏄疛ean-loupGailly鍜孧arkAdler涓璧峰紑鍙戠殑銆俫zip鍘嬬缉鏂囦欢鍚嶏細zip鎴杇z锛実zip鐨勮В鍘嬪懡浠わ細unzip 2銆乥zip2锛宐zip2 鏄竴...
绛旓細浣跨敤蹇嵎閿瓹trl+Alt+T鎵撳紑Linux鐨勫懡浠よ绐楀彛 鐒跺悗杈撳叆瑙e帇鍛戒护鍗冲彲,鍛戒护鎬荤粨濡備笅:.tar 鐢 tar 鈥搙vf 瑙e帇 .gz 鐢 gzip -d鎴栬単unzip 瑙e帇 .tar.gz鍜*.tgz 鐢 tar 鈥搙zf 瑙e帇 .bz2 鐢 bzip2 -d鎴栬呯敤bunzip2 瑙e帇 .tar.bz2鐢╰ar 鈥搙jf 瑙e帇 .Z 鐢 uncompress 瑙e帇 .tar.Z 鐢╰ar 鈥搙Zf...
绛旓細1. gzip涓巊unzip鐨勮交鐩堢粍鍚 gzip锛岃繖涓皬宸х殑宸ュ叿锛/bin/gzip锛夛紝涓撲负鏂囦欢鐦﹁韩鏈嶅姟銆傚彧闇涓涓畝鍗鍛戒护锛坓zip [鏂囦欢]锛夛紝瀹冨氨鑳藉皢鏂囦欢鍘嬬缉涓.gz鏍煎紡锛屽锛歡zip myfile.txt銆傝実unzip锛/bin/gunzip锛夊垯鏄畠鐨瑙e帇浼翠荆锛屽瑙e帇"bo.gz"锛屽彧闇杈撳叆gunzip bo.gz銆備絾闇瑕佹敞鎰忥紝gzip鍙兘鍘嬬缉鏂囦欢锛屼笉鑳...
绛旓細瑙e帇鏂囦欢锛氫粠tar -xvf鍒皍nrar e鍜寀nzip锛屾敮鎸佸悇绉鍘嬬缉鏍煎紡銆傚浜庢洿澶嶆潅鐨勬搷浣滐紝濡傝В鍘婮DK鍒扮壒瀹氱洰褰曪紝浣跨敤tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java锛屼竴鐩簡鐒躲傛帉鎻ar鐨勮緟鍔╅夐」鍚屾牱閲嶈锛屾瘮濡-A鐢ㄤ簬杩藉姞鏂囦欢锛-c鐢ㄤ簬鍒涘缓鏂扮殑褰掓。锛-r鐢ㄤ簬杩藉姞鍐呭锛-t鐢ㄤ簬鏌ョ湅鍐呭鍒楄〃锛-x鐢...
绛旓細Linux涓栫晫涓紝鍘嬬缉鍜岃В鍘嬬缉鍛戒护鏄鏁版嵁绠$悊涓殑寰楀姏鍔╂墜銆傛湰鏂囧皢娣卞叆瑙f瀽甯歌鐨勫帇缂╁懡浠わ紝鍖呮嫭瀹冧滑鐨勮嫳鏂囧悕绉颁互鍙婂舰璞¤蹇嗘柟娉曪紝浠ュ強cvf鍜寈vf杩欎袱涓夐」鐨勫尯鍒笌浣跨敤銆傞鍏堬紝cvf鍜寈vf鏄痶ar鍛戒护涓殑鐗规畩閫夐」銆俢vf浠h〃create and verify file锛屽嵆鍒涘缓骞堕獙璇鏂囦欢锛岀敤浜庡垱寤哄綊妗f枃浠讹紝濡傜ず渚嬶細tar -cvf archive_name...