zoukankan      html  css  js  c++  java
  • tar命令(转)

    把常用的tar解压命令总结下,当作备忘:

    tar

    -c: 建立压缩档案
    -x:解压
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件

    这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

    -z:有gzip属性的
    -j:有bz2属性的
    -Z:有compress属性的
    -v:显示所有过程
    -O:将文件解开到标准输出

    下面的参数-f是必须的

    -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

    # tar -cf all.tar *.jpg
    这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

    # tar -rf all.tar *.gif
    这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

    # tar -uf all.tar logo.gif
    这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

    # tar -tf all.tar
    这条命令是列出all.tar包中所有文件,-t是列出文件的意思

    # tar -xf all.tar
    这条命令是解出all.tar包中所有文件,-x是解开的意思


    压缩
    tar –cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg
    tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
    tar –cjf jpg.tar.bz2 *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
    tar –cZf jpg.tar.Z *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
    rar a jpg.rar *.jpg rar格式的压缩,需要先下载rar for linux
    zip jpg.zip *.jpg zip格式的压缩,需要先下载zip for linux
    解压
    tar –xvf file.tar 解压 tar包
    tar -xzvf file.tar.gz 解压tar.gz
    tar -xjvf file.tar.bz2 解压 tar.bz2
    tar –xZvf file.tar.Z 解压tar.Z
    unrar e file.rar 解压rar
    unzip file.zip 解压zip

    总结
    *.tar 用 tar –xvf 解压
    *.gz 用 gzip -d或者gunzip 解压
    *.tar.gz和*.tgz 用 tar –xzf 解压
    *.bz2 用 bzip2 -d或者用bunzip2 解压
    *.tar.bz2用tar –xjf 解压
    *.Z 用 uncompress 解压
    *.tar.Z 用tar –xZf 解压
    *.rar 用 unrar e解压
    *.zip 用 unzip 解压
    tar [-cxtzjvfpPN] 文件与目录 ....
    参数:
    -c :建立一个压缩文件的参数指令(create 的意思);
    -x :解开一个压缩文件的参数指令!
    -t :查看 tarfile 里面的文件!
    特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
    因为不可能同时压缩与解压缩。
    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
    -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
    -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
       例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
       『 tar -zcvPf tfile sfile』才对喔!
    -p :使用原文件的原来属性(属性不会依据使用者而变)
    -P :可以使用绝对路径来压缩!
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
    --exclude FILE:在压缩的过程中,不要将 FILE 打包!
    范例:
    范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
    [root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
    [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc<==打包后,以 gzip 压缩
    [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc<==打包后,以 bzip2 压缩
    # 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
    # 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
    # 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
    # 上述指令在执行的时候,会显示一个警告讯息:
    # 『tar: Removing leading `/" from member names』那是关於绝对路径的特殊设定。

    问题:在/home/usr1目录下,想要打包/home/usr2目录中的文件file2,应该使用什么样的tar命令?

    解答1:
    $ tar -cvf file2.tar /home/usr2/file2
    tar: Removing leading '/' from members names
    home/usr2/file2
    该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来。使用tar命令解压缩后会出现以下情况:
    $ tar -xvf file2.tar
    $ ls
    …… …… home …… ……
    解压缩后的文件名不是想象中的file2,而是home/usr2/file2。

    解答2:
    $ tar -cvf file2.tar -C /home/usr2 file2
    该命令中的-C dir参数,将tar的工作目录从当前目录改为/home/usr2,将file2文件(不带绝对路径)压缩到file2.tar中。注意:-C dir参数的作用在于改变工作目录,其有效期为该命令中下一次-C dir参数之前。
    使用tar的-C dir参数,同样可以做到在当前目录/home/usr1下将文件解压缩到其他目录,例如:
    $ tar -xvf file2.tar -C /home/usr2
    而tar不用-C dir参数时是无法做到的:
    $ tar -xvf file2.tar /home/usr2
    tar: /tmp/file: Not found in archive
    tar: Error exit delayed from previous errors

    计划、执行、每天高效的活着学着
  • 相关阅读:
    python初接触
    Visual Studio Code 必备插件
    C# 基础知识 -- 枚举(Enum)
    Visual Studio : Console.WriteLine(); 快捷键
    C# 调用Outlook发送邮件
    C# Dos、Unix、Mac文件格式之间的相互转换
    Treeview控件失去焦点,将选择的节点设置为高亮显示
    oracle中的Exists、In、Any、All
    TreeView控件如何控制滚动条的位置
    oracle 查看最大连接数与当前连接数
  • 原文地址:https://www.cnblogs.com/huxiaoyun90/p/3384988.html
Copyright © 2011-2022 走看看