tar命令strip-components选项

在Linux系统中,`tar`命令是一个非常强大的工具,用于创建、查看或者解压缩tar包文件。在您提供的命令中,`tar`命令被用来解压缩一个tar.gz文件:
tar -zxf /tmp/apply_in_docker/OpenJDK11U-jre_x64_linux_hotspot_11.0.22_7.tar.gz -C /usr/lib/jvm/java-11-openjdk-amd64 --strip-components=1
这个命令的各个选项解释如下:

- `-z`:告诉tar命令处理gzip压缩的文件。
- `-x`:表示解压缩。
- `-f`:后面跟着的是文件名,指定要处理的tar文件。
- `-C`:后面跟着的是目录,告诉tar命令将文件解压缩到指定的目录。
- `--strip-components`:这个选项用来剥离(删除)tar包中文件或目录的前几级路径。

具体到`--strip-components=1`,它的作用是解压缩时删除tar包内文件或目录的一级路径。也就是说,它会去掉tar包内文件或目录的顶层目录。

举例说明:

假设我们有一个tar.gz文件,其内部结构如下:
myapp/
│
├── bin/
│   └── app
└── lib/
    └── app.jar
如果我们使用以下命令解压缩这个tar.gz文件:
tar -zxf myapp.tar.gz -C /opt --strip-components=1
那么,解压缩后`/opt`目录下的内容将会是:
/opt/
│
├── bin/
│   └── app
└── lib/
    └── app.jar
可以看到,顶层目录`myapp/`被删除了,其中的`bin/`和`lib/`目录以及它们的内容被直接解压缩到了`/opt/`目录下。

在命令中,`--strip-components=1`的作用是将OpenJDK11的tar.gz文件解压缩到`/usr/lib/jvm/java-11-openjdk-amd64`目录下,并且去掉了tar.gz文件内部的顶层目录,使得OpenJDK11的文件直接位于`/usr/lib/jvm/java-11-openjdk-amd64`目录中,而不是在这个目录下再创建一个额外的顶层目录。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值