文件合并与打包

文件合并和打包压缩

1. 文件合并和覆盖

  cat 命令可以打开文件,使用 cat 命令可以将几个文件合并成一个文件:

>		# 覆盖,前面的文件内容会覆盖后一个文件的内容
>>		# 在末尾追加

  文件合并:

cat a.txt b.txt > c.txt		# 合并(同时打开两个文件),将合并后的内容覆盖到 c.txt中

  示例 1:

cat a.txt > b.txt		# 左边的文件内容覆盖右边的文件内容,若右边文件不存在,则新建
echo 'hello' > b.txt	# 与上效果一样

  示例 2:

  命令输出结果也可以覆盖(添加)到文件中,常用于记录日志:

ll > b.txt		# 命令输出结果覆盖到右边文件中

wc -l a.txt		# 显示文件行数	

cat a.txt | wc -l 	# 管道符(上一个命令的结果作用于后一个命令)

2. 归档文件和压缩文件

  归档(archiving)就是讲许多文件(或目录)打包成一个文件,其目的是为了方便备份、还原以及文件的传输操作。

2.1 tar 命令

  tar 命令常用于打包、查看解包文件以及解包

  语法:

tar [] 打包文件名 源文件

  选项:

  • -c:打包(创建一个新的 tar 文件)
  • -v:显示过程(verbose)
  • -f:指定打包后的文件名
  • -t:列出 tar 文件中目录的内容
  • -x:从 tar 文件中抽取文件(及解包)
  • -z:使用 gzip 压缩算法来压缩打包后的文件
  • -j:使用 bzip2 压缩算法来压缩打包后的文件

2.1.1 打包

tar -cvf test.tar a.txt b.txt c.txt		# 将 a.txt、b.txt、c.txt打包成 test.tar

2.1.2 查看打包文件

tar -tf test.tar	# 查看归档文件

2.1.3 解包

tar -xvf test.tar	# 解包
tar -xvf test.tar -C /tmp	# 解包到 /tmp 目录下

2.2 压缩

  压缩就是将一个大的文件通过一些压缩算法变成一个小文件,其目的是为了缩小文件大小,节省存储文件的磁盘或磁带的空间,在网络传输时也会减少网络的流量。

2.2.1 gzip 和 gunzip 命令

  gzip 命令用于压缩,gunzip 用于解压缩

  语法:

gzip 参数
gunzip 参数

gzip 1.txt
gunzip 1.txt.gz

2.2.2 bzip2 和 bunzip2 命令

  bzip2 用于压缩,bunzip2 用于解压缩

  语法:

bzip2 参数
bunzip2 参数

bzip2 1.txt
bunzip2 1.txt.bz2

2.3 打包与压缩

  打包和压缩可以连接在一起,tar 命令中 z 选项表示使用 gzip 压缩算法来压缩打包后的文件,j 选项表示使用 bzip2 压缩算法来压缩打包后的文件。

2.3.1 压缩打包后的文件

# 压缩打包后的文件为 .gz 格式的压缩包
tar -czvf test.tar.gz a.txt b.txt c.txt 		# 打包并压缩成 gz 格式的压缩包

tar -tf test.tar.gz		# 查看

tar -xvf test.tar.gz	# 解包(解包不需要指定 z)

tar -cjvf test.tar.bz2 a.txt b.txt

2.3.2 打包目录下所有文件

# 打包某个目录下的所有文件。而非目录
cd test
tar cvzf test2.tar.gz *
tar: 从成员名中删除开头的 “/”	  
[root@hj tmp]# cd test		# 切换到 test 目录下

[root@hj test]# tar -czf test.tar.gz *		# 将test 目录下的全部文件打包并解压成名为 test.tar.gz 文件

[root@hj test]# ls
1.txt  2.txt  3.txt  a.pass  b.pass  c.pass  test.tar  test.tar.gz

[root@hj test]# tar -xvf test.tar.gz -C /tmp/test2	# 解压缩到 test2 中
[root@hj test]# ls /tmp/test2
1.txt  2.txt  3.txt  a.pass  b.pass  c.pass  test.tar
原文地址:https://www.cnblogs.com/midworld/p/11049495.html