发现与焦油的差异

时间:2012-07-11 16:19:46

标签: python shell tar

我使用这样的脚本进行应用程序升级:

#!/bin/sh
tar fUxz data.tar.gz --overwrite
tar fd data.tar.gz >$0.diff
if [ -s $0.diff ]
then
  mv $0.diff $0.out
else
  echo "ok" >$0.out
fi

如果提取/覆盖失败,我想在* .out文件中包含一些错误消息。 在我的目录中有文件f1.lms:

-rw-r--r--+  1 user1 wheel    27777 Jun 16  2010 f1.lms
脚本运行后

-rw-r--r--+  1 user1 wheel    27777 Mar 20 14:29 f1.lms

我在.out中得到了这样的信息:

f1.lms: Mode differs
f1.lms: Uid differs
f1.lms: Gid differs

原因是什么 - 这意味着提取失败了吗?我该怎么做才能“好”?

但是当我从我的python脚本(pexpect)调用这个脚本时,我收到了另一条消息:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Error exit delayed from previous errors

我可以看到文件被提取但是没有警告“模式/ ..不同” - 看起来像diff命令不起作用。

如何使这个脚本工作 - 只是作为shell脚本和python?

0 个答案:

没有答案