归档(ubuntu tar)隐藏目录

时间:2011-01-01 02:13:41

标签: linux ubuntu tar hidden-files

目录mydir上的tar将归档隐藏文件和隐藏子目录,但 mydir中带有*通配符的的tar不会。这是一个长期存在的已知不一致或错误吗?

编辑(附加信息):带有通配符的mydir内的tar不会“看到”,也不会将 immediate 目录中的隐藏文件和隐藏子目录存档。但是,在mydir隐藏子目录的非隐藏子目录中,隐藏的子目录将被归档。

6 个答案:

答案 0 :(得分:27)

使用通配符无效。你必须指定。 (当前目录)如果您的意思是包含隐藏文件的完整目录。你可以做到

tar -cvpzf test.tgz .

答案 1 :(得分:6)

您可以使用:

tar -cvpzf test.tgz * .??*

但是,这仅适用于名称为>的隐藏文件。 2(防止'。'和'..')

答案 2 :(得分:5)

答案是*通配符由shell处理,它不会扩展为以点开头的内容。另一个通配符?也不会扩展为以点开头的内容。感谢Keith指出它是执行扩展的shell,因此它与tar无关。

如果您使用shopt -s dotglob,则展开会包含.filename等内容。感谢Andy。

使用shopt -u dotglob将其关闭。

切换dotglob选项不会更改ls本身。相反,它只是像ls *那样改变扩展行为。

编辑:我的建议在下面的评论中。

答案 3 :(得分:3)

shell扩展了通配符,因此tar甚至看不到它。如果要这样做,则必须明确添加它们。 (.*)。但是,最常见的是tar一个目录,这样当你解开它时,它们都会转到同一个地方。

答案 4 :(得分:2)

您可以使用以下方法压缩当前目录中的所有文件/文件夹(包括.hidden)。

tar -zcvf compressed.tgz `ls -A -1`

最后一个参数是您要压缩的文件夹。如果您传递ls -A -1,则会将当前目录中的所有文件夹传递给...。 说到子目录,默认情况下.hidden文件已包含在压缩中。

答案 5 :(得分:1)

shopt -s dotglob

这将成为