添加--ignore-failed-read到tar会导致"未知函数修饰符"错误

时间:2013-10-30 09:04:37

标签: unix backup tar

我在UNIX中使用tar命令来执行特定目录的备份。但是,某些目录包含当前用户没有任何读取权限的文件/子目录。结果,tar命令返回非0退出代码。

我在手册页'--ignore-failed-read'中遇到了以下修饰符,当遇到无法读取的文件时,它会禁止非0退出代码。但是,每当我尝试使用它时,我都会收到错误'unknown function modifier'。

有人可以帮我吗?

我的tar命令看起来像这样:

tar --create --ignore-failed-read --file=test.tar my_dir

2 个答案:

答案 0 :(得分:11)

您的命令似乎完全有效,我没有看到任何拼写错误。 为了绝对肯定,我只是在运行32位Debian 7.1(wheezy)的VM上尝试使用库存内核3.2.0.4。我怀疑,存档已经成功创建(唯一的变化是,当然,源目录的名称)。我还用

检查了我的tar版本
tar --version

给了我以下输出:

tar (GNU tar) 1.26

首先,您应该查看此信息。如果你得到相同的(版本号可能不同)输出,那很好。如果不是(或者看起来更老的版本),那么你可能正在使用tar,它只是不支持这个功能。

此外,您可以检查,如果您的焦油真的支持提到的标志。为此,请键入console:

tar --help | grep ignore-failed-read

你应该看到这样的事情:

--ignore-failed-read   do not exit with nonzero on unreadable files

如果输出保持为空,则表示此版本的tar根本不知道此标志。

看看上述是否有任何帮助。

答案 1 :(得分:0)

在这种情况下可能更有效的另一种选择是--warning=no-file-changed

tar --warning=no-file-changed -czf backup.tgz dir1 dir2