红联Linux门户
Linux帮助

linux下tar报错如何保存在文档?

发布时间:2011-06-10 21:58:35来源:红联作者:fengzhepianzhou
我在linux下解压缩,如果压缩包有问题会报错误,但这个错误无法保存在log中在使用如下命令:
tar zxvf abc.tar.gz |tee abc.log

哪位大侠能告诉我如何把这错误也保存啊。。。在log里只有解压缩的过程记录,发生错误时就没有记录啦,会显示在窗口上
文章评论

共有 11 条评论

  1. yanyongkg 于 2011-06-12 15:51:45发表:

    11# gogo11


    你确定command &>>word 可以正确使用?

    我的环境下&>> 和>>& 符号均不可用,man bash中也没有找到>>&和&>>相关的说明

  2. gogo11 于 2011-06-12 15:29:26发表:

    测试了一下。 &>word 和>&word不完全一样,&>word和>word 2>&1一样。因为&>>word和>>word 2>&1都是正确的,但是>>&word不正确,语法出错。也就是>&word不能附加,只能清空。

  3. yanyongkg 于 2011-06-12 14:33:02发表:

    man bash中查找到的内容,>&file 等价 &>file 等价 >file 2>&1 ??


    Redirecting Standard Output and Standard Error
    Bash allows both the standard output (file descriptor 1) and the stan-
    dard error output (file descriptor 2) to be redirected to the file
    whose name is the expansion of word with this construct.

    There are two formats for redirecting standard output and standard
    error:

    &>word
    and
    >&word

    Of the two forms, the first is preferred. This is semantically equiva-
    lent to

    >word 2>&1

  4. age 于 2011-06-12 14:16:14发表:

    学习了

  5. yanyongkg 于 2011-06-12 13:42:16发表:

    在linuxsir上找到篇详细的

    http://www.linuxsir.org/bbs/printthread.php?t=208432

  6. gogo11 于 2011-06-12 08:20:01发表:

    ls 1>&2 2>1.log和 ls 2>>1.log 1>&2的执行结果不一样,类似于n>&m的必须在后边,放到前边没有效果。第一个1>&2没有发生作用~~~~~~~~~~~~

  7. yanyongkg 于 2011-06-11 23:46:47发表:

    [i=s] 本帖最后由 yanyongkg 于 2011-6-12 00:00 编辑 [/i]

    1。我觉得这里的&1理解为表示1.log不妥当;
    2。tar zxvf abc.tar.gz >> 1.log 2>&1,如果&1理解成1.log,执行过程有点像这样(严格得说不是这样执行的),>>先追回到1.log中,然后2>又一次打开1.log,stderr重新覆盖了1.log,此时1.log只有本次执行的stderr记录才对;

    3。我更倾向于把2>& 当作一个符号来解释,就是自加符号++你不能把拆成两个+号来理解样,这样验证了一下, 2>空格&1 2>&空格1,前面把2>&拆开了写是不对的,bash会报错,后面一种写法等价于2>&1,2>&是一个操作符,1是stdout的文件描述符(file descriptor 简称FD)

    4。我这样总结了一下不知对不对
    2>&1 让FD2跟FD1一样的方式“输出”,这里的&有点像“像什么一样“的翻译的味道,本来FD1,FD2都是输出到屏幕上的,这样的话cmd 2>&1就没有什么意义,当FD1不是输出到屏幕时才会看出效果,如cmd >file 2>&1,>是等价1>的,0<也是等价<的。

    同理n>&m也是可以的,比如1>&2,让FD1像FD2一样的方式“输出”。


    2>&1我觉得写成2>& 1中间空格更好理解,2>&一个空格也不能加的整体作为一个操作符,2>&1这们这样去“翻译”它:FD2 as ... as FD1

  8. age 于 2011-06-11 13:33:50发表:

    tar zxvf abc.tar.gz >> 1.log 2>&1
    这里有二个重定向,分别对应stout,sterr
    >>1.log 表示把标准输出日志附加到1.log文件
    2>&1 表示把标准错误日志同样附加到1.log中
    &1代表1.log
    这算是标准写法了,把所有日志定向到同一个文件

  9. gogo11 于 2011-06-11 11:24:00发表:

    &[n] 代表是已经存在的文件描述符,&1 代表输出 &2代表错误输出 &-代表关闭与它绑定的描述符
    你那个&1代表输出,就是指的是1.log,如果没有前边的1.log,就代表的是stdout吗?

  10. gogo11 于 2011-06-11 11:03:08发表:

    [i=s] 本帖最后由 gogo11 于 2011-6-11 11:14 编辑 [/i]

    引用:
    重定向了
    tar zxvf abc.tar.gz >> 1.log 2>&1
    age 发表于 2011-6-10 22:11

    能不能解释一下这个语句?
    重定向不是>和>>吗?
    喔,俺还是找个资料看看,你解释一下,让我做个对照,嘿嘿!

  11. age 于 2011-06-10 22:11:40发表:

    重定向了
    tar zxvf abc.tar.gz >> 1.log 2>&1