我在 VirtualBox VM 上创建了 Ubuntu 最小安装。然后,我决定将其存档,以便与朋友分享。我让他们使用它,以便他们可以尝试 Linux 命令。
我使用命令将其存档,
tar -zcvf ./Hackcraft.tar.gz ./Hackcraft
归档过程非常顺利。然而,当我在 FileRoller 中打开存档时,我注意到第一个可见目录是“.”。不带引号。当我双击该目录查看其内部时,我看到了我的 Hackcraft 文件夹,该文件夹已存档。里面有我所有的文件。
问题是,为什么顶层文件夹是.?我知道它用于例如在终端中进行 cd 时表示当前文件夹。但为什么它会在那里呢?
答案1
您给出的命令创建一个 tarball,其路径以./Hackcraft
;开头。你可以通过运行看到
tar tf Hackcraft.tar.gz
File Roller 按文件夹显示 tarball 文件夹的内容,在 上拆分/
,这会导致其显示名为 的根文件夹.
,其中包含名为 的文件夹Hackcraft
。
(压缩包本身不包含.
条目。)
答案2
当tar
档案有 的条目时./
,它用于记录当前目录的所有权和权限。因此,当您解压它时,当前目录的所有权和权限可能会更改。
话虽这么说,您发出的命令不应产生tar
包含./
成员的存档。有可能FileRoller
隐式剥离顶级目录。