有时候我们要进行压缩文件操作,如果只是一两个文件,鼠标左右键操作两三下就完事,但文件的数量如果成百上千,再使用鼠标手动将文件一个个压缩成为对应名字的压缩包,那就太费时间了。

本文介绍采用linux shell脚本批量化自动完成大量文件的压缩操作。比如当前目录下存在1.txt,2.txt,…,100.txt等大量文件,那么运行allzip.sh脚本后,即在linux终端运行./allzip.sh命令后,当前目录下自动依次生成上述文件对应的压缩包:1.zip,2.zip…100.zip。

allzip.sh脚本的源代码如下:

1
2
3
4
5
6
#!/bin/bash
find -type f | while read line
do
     name=${line%.\*}
     zip $name.zip $line
done

简要分析下:

1. 变量name主要提取待压缩文件的前缀,比如我们要压缩的文件为test1.txt,那么name对应的值就是前缀”test1”;

2. zip命令的使用:zip 目标文件  源文件。

图1是Cygwin模拟的linux环境下测试的结果,可发现运行脚本后,自动生成test1.txt到test3.txt文件对应的zip压缩包。

图1 allzip.sh在Cygwin环境下的测试结果

本文中windows下模拟linux环境的Cygwin介绍参照:

https://www.zhangtiefei.cn/211.html

https://www.zhangtiefei.cn/167.html