LFCS 系列第三讲:归档/压缩文件及目录、设置文(2)

#tar cjf myfiles.tar.bz2 file[0-9]

#tar cJf myfile.tar.xz file[0-9]

压缩多个文件

列举 tarball 中的内容和更新/追加文件到归档文件中

列举 tarball 中的内容,并显示相同信息为一个详细目录清单。注意,不能直接向压缩的归档文件更新/追加文件(若你需要向压缩的 tarball 中更新/追加文件,需要先解压 tar 文件后再进行操作,然后重新压缩)。

#tar tvf [tarball]

列举归档文件中的内容

列举归档文件中的内容

运行一下任意一条命令:

# gzip -d myfiles.tar.gz [#1]

# bzip2 -d myfiles.tar.bz2 [#2]

# xz -d myfiles.tar.xz [#3]

然后:

#tar--delete--file myfiles.tar file4 (删除tarball中的file4)

#tar--update --file myfiles.tar file4 (更新tarball中的file4)

# gzip myfiles.tar[如果你运行#1命令]

# bzip2 myfiles.tar[如果你运行#2命令]

# xz myfiles.tar[如果你运行#3命令]

最后

#tar tvf [tarball]#再次

将 file4 修改后的日期和时间与之前显示的对应信息进行比较

排除文件类型

假设你现在需要备份用户的家目录。一个有经验的系统管理员会选择忽略所有视频和音频文件再备份(也可能是公司规定)。

可能你最先想到的方法是在备份的时候,忽略扩展名为 .mp3 和 .mp4(或者其他格式)的文件。但如果你有些自作聪明的用户将扩展名改为 .txt 或者 .bkp,那你的方法就不灵了。为了发现并排除音频或者视频文件,你需要先检查文件类型。以下 shell 脚本可以代你完成类型检查:

#!/bin/bash

#把需要进行备份的目录传递给 $1 参数.

DIR=$1

#排除文件类型中包含了 mpeg 字符串的文件,然后创建 tarball 并进行压缩。

#-若文件类型中包含 mpeg 字符串, $?(最后执行的命令的退出状态)返回0,然后文件名被定向到排除选项。否则返回1

#-若 $?等于0,该文件从需要备份文件的列表排除。

tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

排除文件进行备份

排除文件进行备份

使用 tar 保持文件的原有权限进行恢复

通过以下命令,你可以保留文件的权限将备份文件恢复到原始用户的家目录(本例是 user_restore)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15405.html