Linux shell 脚本中的归档指令
shell脚本是可以实现备份数据的最简单方法之一,通过对大容量的文件进行归档压缩,可以充分地利用虚拟环境中的内存空间。下面介绍的归档方式有:tar归档,cpio归档,zip归档和压缩。
tar归档
tar可以对文件进行归档,可以把多个文件和文件夹保存为单个文件,同时保留了所有文件的属性和权限。tar支持的参数有: ---A 合并多个压缩的文件夹到一个指定的文件夹中
例如 tar -Af file1.tar file2.tar ( file2.tar合并 到 file1.tar中去)
---c 代表创建文件 (create file)
---d 代表是比较归档文件和文件系统中的内容是否相同,-d 可以打印出两者之间飞区别
---f 代表指定的文件名称(specify filename)
---r 代表向已经存在的归档文件中添加一些文件 例如 tar -rf original.tar new_file(把新文件new_file添加
到original.tar 中)
---u 代表通过检查时间标签来更新归档的文件内容
---x 将归档文件中的内容提取到当前的目录;也可以用参数(-C)来指定需要提取到的指定目录下面
例如 tar -xf resource.tar -C /home/file (把归档文件提取到 /home/file的目录下面,提取的是全部内
容)
我们也可以提取指定的文件内容 例如 tar -xf resource.tar file1 file2 (只是提取文件file1 和file2,其
他 的归档文件忽略)
---v 代表列出归档文件的细节信息 如:文件的权限,文件所属的组,文件的修改日期等信息
---t 代表列出归档文件中的所有包含的文件 tar -tf resource.tar
cpio归档
cpio也是一种归档的方式,但是并没有tar那么常用。主要是用于RPM软件包和linux内核的initramfs文件。
cpio支持的参数有:---o 指定了输出
---v 用来打印归档文件的信息列表
---i 指定了输入
---t 表示列举归档文件中的内容
---d 用来表示提取
命令的使用:
1.先创建文件
touch file1 file2 file3
把已经创建的文件进行归档
echo file1 file2 file3 | cpio -ov > result.cpio
2.列出cpio归档文件中的内容
cpio -it < result.cpio
3.从cpio 归档文件中提取文件
cpio -id < result.cpio
zip的归档和压缩
1.对归档文件才有zip格式进行压缩
zip result.zip result (生成了result.zip)
2.对目录和文件进行递归操作
zip -r result.zip file1 file2
3.从归档文件中提取内容
unzip result.zip