无法将特定 tar 解压到其自己的 DIR

无法将特定 tar 解压到其自己的 DIR

我正在尝试将扩展名为 *tar.gz 的文件解压到其自己的目录中。

tar -zxf /tmp/ranger/ranger-2.1.0-solr_audit_conf.tar.gz

如果我确实像上面那样,它将所有文件解压到当前的工作目录,但我希望所有这些文件都转到它自己的目录。

以下命令提取到特定的 DIR:

tar -zxf /tmp/ranger/ranger-2.1.0-solr_audit_conf.tar.gz -C /tmp/ranger/ranger-2.1.0-solr_audit_conf

注意:如果我尝试不使用 -C 来处理任何其他文件,它能够提取到自己的目录,这很有趣。

答案1

tar -x会将文件内容提取*.tar.*到当前工作目录...期间。话虽如此,这就是这意味着什么,以及我们如何解决这个问题以获得您想要的行为。

通常,目录是压缩包。意思是有人写道:

tar -czf tarball.tar.gz somedirectory

在这种情况下,如果您tar -x这样做,您会将内容提取到somedirectory.但这只是按照惯例。有人很可能使用以下方式压缩存档:

tar -czf tarball.tar.gz file1 file2 file3

在这种情况下,当您执行 时tar -x,您将在当前目录中获得file1file2、 和。file3


在这种情况下,如果您想将提取的文件保存在一个独立的目录中,您应该:

mkdir tarball && cd tarball && tar -xzf ../tarball.tar.gz

要了解是否应该tar -xmkdir _ & cd _ & tar -x ../_,可以使用tar --list -f tarball.tar.gz.这将在您提取 tarball 之前列出它的内容,以便您可以决定是否要将其按pwd原样提取,或者创建一个新目录并从那里提取它。

相关内容