这里只说明一些常用参数,自己不常用的这里忽略,tar是一个集打包\解包\压缩\解压于一体的命令。
用法:tar [选项···] [文件]···
GNU ‘tar’
将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。
常用示例:
tar -cf archive.tar foo bar #从文件foo bar创建归档文件 archive.tar.
tar -tvf archive.tar #详细列举归档文件archive.tar中的所有文件。
tar -xf archive.tar#展开归档文件archive.tar中的所有文件。
主操作模式:
-A, --catenate,--concatenate 追加tar文件至归档
-c, --create 创建一个新归档
-d, --diff,--compare 找出存档与当前文件的不同
--delete 从归档中删除
-r, --append 追加文件至归档结尾
-t, --list 列出归档内容
-u, --update 仅追加比归档中文件更新的文件
-x, --extract, --get 从归档中解出文件
设备选择和切换:
-f, --file=ARCHIVE 使用归档文件或ARCHIVE设备
压缩选项:
-a, --auto-compress 使用归档后缀名来决定压缩程序
-j, --bzip2 通过bzip2过滤归档
-J, --xz 通过xz过滤归档
-z, --gzip, --gunzip, --ungzip 通过gzip过滤归档
本地文件选择:
--add -file=FILE 添加指定的FILE至归档
-C, --directory=DIR 改变至目录 DIR
-v, --verbose 详细的列出处理的文件
--warning=KEYWORD警告控制:
范例(以下范例均以root用户运行):
范例一:将整个 /home 目录下的文件全部打包成为 /usr/backup/home.tar
# tar -cvf/usr/backup/home.tar /home <--仅打包,不压缩
# tar -zcvf/usr/backup/home.tar.gz /home <--打包后,以 gzip 压缩
# tar -jcvf/usr/backup/home.tar.bz2 /home <--打包后,以 bzip2 压缩
特别注意:在参数 f 之后的文件档名是自己取的,习惯上都用 .tar 来作为辨识。
范例二:查阅上述 /usr/backup/home.tar.gz 文件内有哪些文件?
# tar -ztvf/usr/backup/home.tar.gz
由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!
范例三:将 /usr/backup/home.tar.gz 文件解压缩在 /usr/local/src 底下
方法1:
# cd /usr/local/src
# tar -zxvf/usr/backup/home.tar.gz
方法2:
#tar -zxvf/usr/backup/home.tar.gz -C /usr/local/src/
范例四:在 /tmp 底下,我只想要将 /usr/backup/home.tar.gz 内的 home/root 解开而已
# cd /tmp
# tar -zxvf/usr/backup/home.tar.gz home/root
范例五:将 /home/ 内的所有文件备份下来,并且保存其权限!
# tar -zxvpf/usr/backup/home.tar.gz /home
注意: 这个 -p 的属性是很重要的,尤其是当要保留原本文件的属性时!
在 f 之后要立即接档案名!不要再加参数!如上例 tar -zxvfp /usr/backup/home.tar.gz就是错误的写法。
范例六:在 /home 当中,比 2007/06/01 新的文件才备份
# tar -N"2007/06/01" -zcvf home.tar.gz /home
范例七:我要备份 /home, /etc ,但不要 /home/abc
# tar --exclude/home/abc -zcvf myfile.tar.gz /home/* /etc
范例八:将 /home/ 打包后直接解开在 /tmp 底下,而不产生文件!
# cd /tmp
# tar -cvf - /home |tar -xvf -
要注意的地方在於输出档变成 - ,而输入档也变成 - 。
范例九:在打包/home之后又新建一个用户bcd,现也要将其打包加入/usr/backup/home.tar.gz
#tar -zcvrf/usr/backup/home.tar.gz /home/bcd
参考文献:http://zzjnet.blog.51cto.com/323001/318766
GNU tar --help