如何在当前目录中提取.tar.gz?(没有子文件夹)

Ver*_*ard 3 wordpress ssh bash

目前,当从shell中提取Wordpress latest.tar.gz文件时,它会在/wordpress/文件夹中提取它.

我怎么才能得到它所以它只是将文件放在实际的当前目录中?

制作一个自动脚本,我正在考虑做mv /wordpress/* ./* 但这会有用吗?

Ale*_*sky 14

使用--strip-components=1您的焦油提取命令.


Rod*_*uis 5

来自man tar

--strip-components NUMBER, --strip-path NUMBER
strip NUMBER  of    leading  components  from  file  names  before
extraction

(1) tar-1.14 uses --strip-path, tar-1.14.90+ uses --strip-compo-
nents
Run Code Online (Sandbox Code Playgroud)

所以首先做

tar --version
Run Code Online (Sandbox Code Playgroud)

然后

tar zxvf --strip-components 1 YOURTARFILE.tar.gz
Run Code Online (Sandbox Code Playgroud)

对于 1.14.90+ 版本,或

tar zxvf --strip-path 1 YOURTARFILE.tar.gz
Run Code Online (Sandbox Code Playgroud)

对于旧版本。

或者,您当然可以制作一个简单的命令链:

tar zxvf YOURTARFILE.tar.gz && mv wordpress/* . && rmdir wordpress
Run Code Online (Sandbox Code Playgroud)

  • 实际上,您必须执行 tar --strip-components=1 -zxvf file.tar.gz - 如果您使用其他参数顺序,则 tar 认为 strip-parameters 是一个文件 (4认同)

小智 3

第一步,压缩文件:

gunzip latest.tar.gz
Run Code Online (Sandbox Code Playgroud)

保留了最新的.tar 文件。要将其提取到工作文件夹,请使用

tar -x --xform s/wordpress// -f latest.tar
Run Code Online (Sandbox Code Playgroud)