我正在尝试将扩展名为 *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
,您将在当前目录中获得file1
、file2
、 和。file3
在这种情况下,如果您想将提取的文件保存在一个独立的目录中,您应该:
mkdir tarball && cd tarball && tar -xzf ../tarball.tar.gz
要了解是否应该tar -x
或mkdir _ & cd _ & tar -x ../_
,可以使用tar --list -f tarball.tar.gz
.这将在您提取 tarball 之前列出它的内容,以便您可以决定是否要将其按pwd
原样提取,或者创建一个新目录并从那里提取它。