将 .tar.gz 存档解压缩到特定目录

Ker*_*nic 3 tar directory

如何tar.gz使用单行命令将文件与所有内容一起解压缩到任意目录,存在或不使用 tar?如果它不存在,则创建(目录)。为了澄清,让我们考虑示例:我已经archive-latest.tar.gz从互联网下载到目录/home/user/Downloads. 我将 microSD 卡目标分区安装在/mnt/archive. 下载后,我想使用单行命令/home/user/Downloads/archive-latest.tar.gz直接提取下载的内容/mnt/archive。我已阅读man tar手册,但找不到指定目标目录的选项。

Ant*_*hon 6

-C选项在开始提取之前将 tar 更改为现有目录:

 tar xv -C /mnt/archive -f /home/user/Downloads/archive-latest.tar.gz
Run Code Online (Sandbox Code Playgroud)

如果您已经位于该目录中,/home/user或者/home/user/Downloads您可以相应地缩短路径-f

如果目标路径可能不存在,您可以使用以下命令创建它mkdir

 mkdir -p /mnt/archive;  tar xv -C /mnt/archive -f /home/user/Downloads/archive-latest.tar.gz
Run Code Online (Sandbox Code Playgroud)

如果目录已经存在,则该-p选项mkdir不会抱怨。