![解压到临时目录,然后删除该目录](https://linux22.com/image/1478034/%E8%A7%A3%E5%8E%8B%E5%88%B0%E4%B8%B4%E6%97%B6%E7%9B%AE%E5%BD%95%EF%BC%8C%E7%84%B6%E5%90%8E%E5%88%A0%E9%99%A4%E8%AF%A5%E7%9B%AE%E5%BD%95.png)
我是一个非常新的 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 命令成功时运行。在将其交给那些将访问最终目标目录的人之前,您可以使用您有写入权限的目录对此进行测试。