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



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

我可以下载文件并使用

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

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

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

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

这是可能的,但不是微不足道的。更简单的方法是创建自己的目录,cd到其中,然后将--strip-components 1--strip-path 1传递给tar,如果你的tar(例如GNU 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

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

就是:

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

最新更新