#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)。