阿坦
@37157522
Linux OS 下批量解压缩文件
阿坦教程 Linux
2022-01-15 09:11
Words count: 1037
一个简单的脚本,分分钟搞定批量文件解压缩。
***版权申明 ©***
本文是我在 PRSDigg(顶呱呱)
发布的第 4 篇教程 © 2022 阿坦
转载请注明出处
原创不易,请多转发点赞

怎么搞?

直接给答案:

只需要写一个简单的 shell 脚本,就能搞定批量解压缩文件。

接下来,我先向各位表演一遍,有一定基础的小伙伴可以一起动起手来,基础稍差的小伙伴可以先当作“胸口碎大石”看。表演完之后,是脚本的工作原理的详细解析。

表演一遍

首先,把所有需要批量解压的文件放到一个目录下(我放到了 `~/Desktop` 目录下):
gzFiles
gzFiles

可以看到,我的 Desktop 目录下有 go 开头、Typora 开头的两个打包好的 GNU zip 文件,接下来要批量解压缩的就是他们俩。

接下来,开始写脚本:

使用 vim 开始写一个名为 batchUnzip.sh 的脚本

$ vim batchUnzip.sh

脚本文件名可以随意,按照你的想法命名,后缀名 .sh 是为了提醒用户它是一个 shell 脚本,对于机器来说不是必须,有没有后缀名都可以写 shell 脚本;编辑器也可以用 gedit 或者别的代替 vim。

batchUnzip_sh
batchUnzip_sh

写好脚本后,敲击冒号 : 输入 wq 保存退出。

执行脚本
$ ./batchUnzip.sh

等待程序执行完毕,输入 ls 命令

ls_
ls_

可以看到,~/Desktop 目录下多了两个目录,一个 bin(由 Typora-linux-x64.tar.gz 解压后得到)、一个 go(由 go1.17.3.linux-amd64.tar.gz 解压后得到)。进入 bin 目录,里面有一个 Typora-linux-x64 目录;进入 go 目录,里面是它的各种配套文件。

到此,~/Desktop 目录下的 *.tar.gz 压缩文件批量解压工作就完成了。

脚本解析

下面一起来看看脚本里具体写的那些东西,从第一行开始:

#!/bin/bash

在 shell 脚本中,# 之后的内容通常是单行注释,但是这个 #!/bin/bash 比较特殊,它表示这是一个 bash 脚本,遵循 bash 语法。

# Author: Atank // 注释

cd ~/Desktop // 进入当前用户家目录下的 Desktop 目录

ls *.tar.gz > ls.log // 把 ~/Desktop 目录下的所有以 .tar.gz 结尾的文件名写入到 ls.log 文件里面。

我们可以到终端单独执行一下这个命令看看:

ls.log
ls.log

可以看到,两个文件被分两行写到了 ls.log 文件里面。

for i in $(cat ls.log)
    do
        tar -zxf $i &> /dev/null
    done

通过 for 循环,挨个解压 ls.log 文件中记录的以 .tar.gz 结尾的文件。和我一样刚学习不久的朋友要注意:

  • 在写 shell 脚本时,cat ls.log 需要用 $() 括起来才能被识别;

  • 调用变量时需要在前面加 $ 符号,所以调用变量 i 时写的是 $i;

  • 脚本中命令执行后往往会返回一些数字或是错误信息,表示成没成功,遇到了什么情况。&> /dev/null 的意思是把这些返回的信息直接丢掉。

rm -rf ls.log // 删除前面创建的 ls.log 文件。

批量解压缩,你学会了吗?欢迎在文章下方留言或通过 Mixin Messenger 和我交流。

Arweave TX
2QMnn_iPjm018LLti1mZ4pXHFAx_X6_nJJFy6TXR5y0
Content Digest
3cff7c931260229d365e3f9a416c97097d56d264afbcd1bffcc5be320247d4db
- 90.0 % More to go -
Pay 0.0000050 BTC (≈$0.3165) to continue reading
and receive early reader revenue (Rules)
This post is a virtural product selling on Quill, IT WILL NOT REFUND once paid. Please pay with caution.
Pay to Read
Already paid? Try to Login
1 : 0
9 times bought, 0 times reward
Comments
阿坦
@37157522
Subscribing: 45 Subscribers: 117
潮起潮落是什么都不为
Subscribe
Related Posts
如何自定义 Clash 代理规则:一份简明的操作指南 PAL9000 聊天机器人部署教程 Windows 设备如何安装 PowerShell 闯关式在线学习 Git 的使用 CoWallet 多签钱包图文使用教程
Rules Stats Help Github Twitter Discord
阿坦
@37157522
Subscribing: 45 Subscribers: 117
潮起潮落是什么都不为
Subscribe
Related Posts
如何自定义 Clash 代理规则:一份简明的操作指南 PAL9000 聊天机器人部署教程 Windows 设备如何安装 PowerShell 闯关式在线学习 Git 的使用 CoWallet 多签钱包图文使用教程
Rules Stats Help Github Twitter Discord