如何解压缩文件并在一个命令行操作中重命名该文件夹?

时间:2011-09-18 16:51:49

标签: shell command-line

我想下载一个文件,解压缩并重命名该文件夹。

我可以下载文件并用

解压缩
curl https://s3.amazonaws.com/sampletest/sample.tar.gz | tar xz

如何在同一命令中重命名文件夹?

curl https://s3.amazonaws.com/sampletest/sample.tar.gz | tar xz | mv ???????

我不想在命令中明确使用文件夹名称。

2 个答案:

答案 0 :(得分:4)

这是可能的,但不是微不足道的。如果您的tar(例如GNU Tar)支持它,则可以更轻松地创建自己的目录,cd,然后将--strip-components 1--strip-path 1传递给tar

 File name transformations:

      --strip-components=NUMBER   strip NUMBER leading components from file
                                  names on extraction
      --transform=EXPRESSION, --xform=EXPRESSION
                                  use sed replace EXPRESSION to transform file names

答案 1 :(得分:3)

如果您的系统未安装GNU tar,则可能仍有pax(POSIX工具)可用。后者支持-s选项,该选项允许对已处理文件的路径名进行任意更改。

那将是:

curl https://s3.amazonaws.com/sampletest/sample.tar.gz | gunzip | pax -r -s "/old/new/"