归档(ubuntu tar)隐藏目录

H2O*_*aCl 17 linux ubuntu tar hidden-files

在目录上的焦油mydir会从归档隐藏的文件和隐藏子目录,但焦油 mydir*通配符不会.这是一个长期存在且已知的不一致或错误吗?

编辑(附加信息):来自内部的tar mydir使用通配符不会"看到",也不会将直接目录中的隐藏文件和隐藏子目录存档.但是,在非隐藏子目录中的mydir隐藏文件和隐藏子目录将被归档.

Mad*_*uja 30

使用通配符它将无法正常工作.你必须指定.(当前目录)如果您的意思是包含隐藏文件的完整目录.你可以做

tar -cvpzf test.tgz .
Run Code Online (Sandbox Code Playgroud)

  • tar cvpfz test.tgz --exclude =*.tgz. (8认同)
  • 但要小心将新tar放在您正在考虑的同一目录中.你可以进入一个讨厌的循环. (6认同)
  • 或者把它放在其他地方:`tar czpf /var/tmp/mytar.tgz .`. (3认同)

小智 6

您可以使用:

tar -cvpzf test.tgz * .??*
Run Code Online (Sandbox Code Playgroud)

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


H2O*_*aCl 5

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

如果你使用shopt -s dotglob那么扩展将包括像.filename.感谢Andy.

使用shopt -u dotglob将其关闭.

切换dotglob选项不会自行更改ls.相反,它只是改变了像某些东西所展示的扩展行为ls *.

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

  • @felwithe 通过使用 `shopt -s dotglob`,人们可以轻松地在要压缩其内容的目录中执行类似 `tar -cvpzf Final.tar.gz *` 的操作 (2认同)