shell脚本(6)B计划

1、用tar归档

描述
tar可以将多个文件和文件夹保存为单个文件,同时还能保留所有的文件属性,如所有者、权限等。所有的Unix操作系统都默认会包含tar命令
基本用法
tar -cf output.tar [SOURCES] //-c(create)代表创建文件
eg: tar -cf output.tar file1 file2 file3 folder1 ……
-t: 列出归档文件中所包含的文件
tar -tf archive.tar
file1
file2
-v/-vv: 冗长模式(verbose),对大多数命令而言,该模式会在断种输出更多的细节
tar -tvf archive.tar
文件名必须紧跟在-f之后,而且-f应该是选项中的最后一个。-f(specify filename)指定文件
补充知识
1、向归档文件中添加文件
tar -rf original.tar new_file
2、从归档文件中提取文件或者文件夹
tar -xf archive.tar -C my_directory //x(exact)提取,-C指定提取到的目录
3、拼接两个归档文件
tar -Af file1.tar file2.tar //mac终端没有A这个参数
4、通过时间戳来更新文档中的内容
tar -uf archive.tar filea //在归档中如果同名文件已经存在,那么会添加两个同名文件,我们可以使用-u参数指明:只有比归档文件中的文件更新时才被添加
5、从归档文件中删除文件
tar -f archive.tar --delete file1 file2 ……
tar --delete --file archive.tar [FILE LIST]
6、压缩tar归档文件
tar命令只能用来对文件进行归档,不具备压缩功能。出于这个原因,多数用户在归档文件的时候会对归档文件采用某种形式的压缩,这样就能够显著减少文件的体积。
tar -acvf archive.tar.gz filea fileb filec //使用-a或者--auto-compress参数tar会根据扩展名自动进行压缩处理(mac终端没有-a参数)。
7、从归档中排除部分文件
tar -cf archive.tar * --exclude “*txt” //排除所有的txt文件,样式应该使用双引号括起来,避免使用shell对其进行扩展
tar -cf archive.tar * -X list //可以将需要排除的文件列表放入list文件中结合-X参数实现归档排除文件
8、打印归档的总字节数
tar -cf archive.tar * --exclude “*txt” --totoals

2、使用gzip压缩数据

描述
gzip只能压缩单个文件或数据流,而无法对目录和多个文件进行归档。因此我们需要先创建tar归档文件,然后再用gzip进行压缩。
基本用法
1、压缩文件
gzip filename
2、解压缩文件
gunzip filename.gz
3、列出压缩文件的属性信息
gzip -l text.txt.gz
4、指定压缩级别
gzip --fast filename
gzip --best filename
补充内容
1、压缩归档文件
gzip archive.tar
2、无需解压,直接读取gzip格式文件
zcat test.gz
3、压缩率
gzip -5 test.img //一共有9档压缩率,1级的压缩率最低,但是压缩速度最快;9级的压缩率最高,但是压缩速度最慢
4、使用bzip2
bzip2的使用方式与gzip使用方式大致相关,但是比gzip有更高的压缩比。
bzip2 filename //压缩
bunzip2 filename.bz2 //解压缩
5、使用lzma
lzma有比gzip,bzip2更高的压缩比,但是压缩速度要慢一些
lzma filename //压缩
unlzma filename //解压缩

3、使用zip归档和压缩

描述
在Linux系统下,他的应用不如gzip和bzip2那么使用广泛,但是Internet上的文件通常采用这种格式,mac系统中压缩文件就是采用这种格式。尽管同大多数我们已经经过的归档、压缩工具类似,但zip在完成归档之后并不会删除源文件,这一点与luma, gzip, bzip2不同。最重要的是,尽管与tar想象,zip既可以进行归档,也可以进行压缩,而单凭tar,则无法进行压缩操作。
基本用法
1、对归档文件采用zip进行压缩
zip archive_name.zip [SOURCE FILES/DIRS]
zip file.zip file
2、对目录和文件进行递归操作
zip -r archive.zip folder1 folder2
3、从zip文件中提取内容
unzip file.zip
补充内容
1、更新压缩文件中更新内容
zip file.zip -u newfile
2、从压缩文件中删除内容
zip -d file.zip file.txt
3、列出压缩文件的内容
unzip -l archive.zip

4、更快速的归档工具pbzip2

pbzip2可以利用多线程来进行归档,所以速度会更快一些

5、使用rsync备份系统快照

之前用过cp命令同步本地计算机和远程计算机的文件
rsync命令也可以做这个事情
rsync命令用SSH连接远程主机,因此必须使用user@host这种形式设定远程主机的地址,其中user代表用户名,host代表远程主机的IP地址或主机名。而PATH指定需要从中复制数据的远程主机上的路径。

将一个目录中的内容同步到另一个目录
rsync -av /home/test/ /home/backups //将test目录中内容复制(不包括test目录)到backups目录中
rsync -av /home/test /home/backups //将test目录中内容(包括test目录)复制到backups目录中
rsync -av /home/test /home/backups/ //将test目录中内容(不包括test目录)复制到backups目录中
rsync -av /home/test /home/backups //将test目录中内容(包括test目录)复制到backups目录中
目录有/结尾,只复制目录内容;没有/结尾,复制内容包括目录本身

扩展

cronttab:开启定时任务

转载于:https://www.jianshu.com/p/960eb4c52f0d

猜你喜欢

转载自blog.csdn.net/weixin_34075268/article/details/91186384