归档(ubuntu tar)隐藏目录

目录上的tar
mydir
将归档隐藏文件和隐藏的子目录,但来自
mydir
内的tar与
*
通配符不会。这是一个长期存在且已知的不一致或错误吗? 编辑(附加信息):使用通配符从
mydir
内的tar不会“看到”,也不会将直接目录中的隐藏文件和隐藏子目录存档。但是,在非隐藏子目录中的
mydir
隐藏文件和隐藏子目录将被归档。     
已邀请:
使用通配符它将无法正常工作。你必须指定。 (当前目录)如果您的意思是包含隐藏文件的完整目录。你可以做
tar -cvpzf test.tgz .
    
您可以使用:
tar -cvpzf test.tgz * .??*
但是,这仅适用于名称> 2的隐藏文件(以防止'。'和'..')     
答案是
*
通配符由shell处理,它不会扩展为以点开头的东西。另一个通配符
?
也不会扩展到以点开头的东西。感谢Keith指出它是进行扩展的shell,所以它与
tar
无关。 如果你使用
shopt -s dotglob
那么扩展将包括
.filename
之类的东西。感谢Andy。 使用
shopt -u dotglob
将其关闭。 切换
dotglob
选项不会改变
ls
本身。相反,它只是改变扩展行为,如
ls *
。 编辑:我的建议在下面的评论中。     
shell扩展了通配符,因此tar甚至看不到它。如果要这样做,则必须明确添加它们。 (
.*
)。但是,最常见的是tar一个目录,这样当你解开它时,它们都会转到同一个地方。     
shopt -s dotglob
这将使     
您可以使用以下方法压缩当前目录中的所有文件/文件夹(包括.hidden):
tar -zcvf compressed.tgz `ls -A -1`
最后一个参数是您要压缩的文件夹。如果你传递它
ls -A -1
,你将它传递到当前目录中的所有文件夹,但是
.
..
。 说到子目录,默认情况下,.hidden文件已经包含在压缩中。     

要回复问题请先登录注册