以下为linux常用的命令举例。
(注:#后面的为注释,输入命令时不要写)
(一)备份压缩
1.1 tar(打包压缩)
tar -cf file.tar file #将file文件或目录打包为文件:file.tar
tar -tf file.tar #浏览包文件file.tar中的文件或目录
tar -xf file.tar #将包文件file.tar释放到当前目录
tar -czf file.tar.gz file #将file文件或目录打包为压缩文件:file.tar.gz
tar -czf file.tar.gz file --remove-files #将file文件或目录打包为压缩文件:file.tar.gz,并在文件加入备份文件后,就删除原始文件
tar -tzf file.tar.gz #浏览压缩文件file.tar.gz中的文件或目录
tar -xzf file.tar.gz #将压缩文件file.tar.gz释放到当前目录
tar -xzf file.tar.gz -C direct #将压缩文件file.tar.gz释放到direct目录,其中direct目录必须存在
tar -cjf file.tar.bz2 file #将file文件或目录打包为压缩文件:file.tar.bz2
tar -xjf file.tar.bz2 #将压缩文件file.tar.bz2释放到当前目录
tar --delete a.js -f module.tar #删除module.tar包内的a.js文件
tar -u b.js -f module.tar #更新module.tar包内的b.js文件或添加新文件b.js
tar -czf - proc | split -b 2m -d - proc.tar.gz #分卷压缩proc目录,并保持每个压缩包的大小不超过2m字节。命令执行后,会生成proc.tar.gz00、proc.tar.gz01等文件
1.2 zip(用zip格式压缩)
zip abc.zip a.txt b.txt c.txt #将多个文件压缩为abc.zip文件
zip -rq proc.zip proc #将目录proc及其所有内容压缩为proc.zip,不显示指令执行过程
zip -rqm proc.zip proc #将目录proc及其所有内容压缩为proc.zip,并删除原始文件,不显示指令执行过程
zip -1 abc.zip a.txt b.txt #将多个文件压缩为abc.zip文件,并指定压缩率为最低
zip -9r proc.zip proc #将目录proc压缩为proc.zip文件,并指定压缩率为最高
zip -u asdf.zip test/touch.txt #更新压缩包asdf.zip内的test/touch.txt文件或添加新文件test/touch.txt
zip -d asdf.zip test/touch.txt #删除压缩包asdf.zip内的test/touch.txt文件
1.3 unzip(用zip格式解压缩)
unzip -v proc.zip #列出压缩文件proc.zip的信息
unzip -x asdf.zip #将压缩文件asdf.zip解压缩到当前目录
unzip -xd ziptest/ asdf.zip #将压缩文件asdf.zip解压缩到ziptest目录
1.4 zipinfo(列出压缩文件信息)
zipinfo asdf.zip #列出压缩文件asdf.zip的信息
zipinfo -v asdf.zip #列出压缩文件asdf.zip内每个文件的详细信息
zipinfo -t asdf.zip #只列出压缩文件asdf.zip内所包含的文件数目,压缩前后的文件大小及压缩率。
zipinfo -1 asdf.zip #只列出压缩文件asdf.zip内包含的文件名称
1.5 gzip(压缩、解压缩文件)
gzip test.txt #将test.txt文件压缩成test.txt.gz文件
gzip * -r #将当前目录下的每个文件压缩成.gz文件,包括子目录中的文件
gzip * -r -9 #将当前目录下的每个文件以最大压缩率压缩成.gz文件,包括子目录中的文件
gzip * -d #将当前目录下的每个.gz压缩文件解压,不包括子目录中的文件
gzip * -dr #将当前目录下的每个.gz压缩文件解压,包括子目录中的文件
1.6 gunzip(解压缩、查看gzip文件)
gunzip * -r #将当前目录下的每个.gz压缩文件解压,包括子目录中的文件
gunzip * -rl #显示当前目录下的每个.gz压缩文件的详细内容,包括子目录中的文件
1.7 zcat(查看gzip压缩文件中的内容)
zcat test.txt.gz #在不解压的情况下,查看被压缩的test.txt文件的内容
1.8 bzip2(压缩、解压缩bz2文件)
bzip2 test.txt #将test.txt文件压缩成test.txt.bz2文件
bzip2 test.txt -k #基本同上,只是保留源文件
bzip2 test.txt -kf #基本同上,如果压缩后有重名的文件,则会强制覆盖
bzip2 * -9 #将当前目录下的每个文件以最大压缩率压缩成.bz2文件,不包括子目录中的文件
bzip2 * -d #将当前目录下的每个.bz2压缩文件解压,不包括子目录中的文件
注:bzip2命令只对文件进行操作,无法操作目录。如果当前目录下有a.txt和b.txt文件,压缩后会得到a.txt.bz2和b.txt.bz2文件,而源文件a.txt和b.txt被删除。
1.9 bunzip2(解压缩bz2文件)
bunzip2 test.txt.bz2 #将当前目录下的test.txt.bz2压缩文件解压
bunzip2 * #将当前目录下的每个.bz2压缩文件解压
1.10 cpio(归档文件或目录)
find . | cpio -coB > ../proc-bak.cpio #将当前目录及子目录下所有文件归档到proc-bak.cpio文件
find -name "*.txt" | cpio -coB > ../proc-bak.cpio #将当前目录下所有txt文件归档到proc-bak.cpio文件
cpio -cidu < proc-bak.cpio #将归档文件proc-bak.cpio还原到当前目录下
注:在归档时,应避免在需要备份的目录下生成cpio归档文件,因为在还原时会将其自身清空,以此造成一些不必要的麻烦。