服务器, 未分类

把每个压缩文件解压到以该压缩文件的文件名命名的文件夹中(文件夹名不包含扩展名)

之前有一个朋友问过我,如何把当前目录下所有的tar.gz文件分别解压到以该压缩文件命名的文件夹中,且文件夹不带“.tar.gz”。

由于当时对数据流重定向还不算太熟悉,未能帮得上忙。

现在想起来,解决的方法其实很简单:

假设当前目录下有universe.tar.gz,galaxy.tar.gz,solar.tar.gz三个文件:

三个文件

 

大概的步骤是:把三个文件名赋值给变量filename,然后使用for … in …循环进行mkdir和解包:

当然,这只是一个比较简单的解决方案,其实通过read,能制作出交互式的Shell Script,并且支持选择压缩文件类型:

虽然加了挺多的功能,但是我觉得我这样写有点复杂。只用tar打包没压缩的类型我还没加进去。也有很多需要完善的地方。如果各位高人有兴趣,拿来修改修改吧。

Comments are closed.