解压到临时目录,然后删除该目录

解压到临时目录,然后删除该目录

我是一个非常新的 Linux 用户,我正在将 tarball 解压到一个目录中,面不微笑地说道

我想要做的是使用mktemp -d命令创建一个临时目录,然后使用该tar命令将 tarball 解压到临时目录中,然后我想要删除该目录(我很确定我知道如何做到这一点)。

我目前拥有的是这个......

tar -xvzf UW_archive_example.tgz home/common/4000_UW_spreadsheets/example.ods

这有效并且成功解压了文件,我该如何使用mktemp -d命令tar来实现将文件解压到临时目录中?

假设我无法下载任何内容,并且只能在我想要创建临时文件的目录中具有读取权限。

答案1

你可以这样做:

tar -C `mktemp -d` -xvf foo.tar

它将 foo.tar 提取到临时目录中,但这仅在技术上是正确的,因为它没有告诉您目录在哪里。

两条线的方法是:

NEW_TMP_DIR=`mktemp -d`
tar -C $NEW_TMP_DIR -xvf foo.tar

并且如果你想将它们链接起来,你可以使用 && 使其成为一行并确保目录已创建:

NEW_TMP_DIR=`mktemp -d` && tar -C $NEW_TMP_DIR -xvf foo.tar

答案2

mktmp -d --tmpdir=/path/to/untar/dir && tar -C /path/to/untar/dir -xvzf UW_archive_example.tar home/common/4000_UW_spreadsheets/example.ods

mktmp 在您选择的路径中创建临时目录。tar 的 -C 指定要解压到的目录。'&&' 确保 tar 仅在 mktmp 命令成功时运行。在将其交给那些将访问最终目标目录的人之前,您可以使用您有写入权限的目录对此进行测试。

相关内容