之前有一个朋友问过我,如何把当前目录下所有的tar.gz文件分别解压到以该压缩文件命名的文件夹中,且文件夹不带“.tar.gz”。 由于当时对数据流重定向还不算太熟悉,未能帮得上忙。 现在想起来,解决的方法其实很简单: 假设当前目录下有universe.tar.gz,galaxy.tar.gz,solar.tar.gz三个文件: 大概的步骤是:把三个文件名赋值给变量filename,然后使用for … in …循环进行mkdir和解包:
1 2 3 4 5 6 7 8 9 10 |
#!/bin/bash #Get the files name. filesname=$(ls *.tar.gz -a|sed "s/.tar.gz//g") #for loop for packname in $filesname do mkdir $packname tar zxvf $packname.tar.gz -C $packname done echo "Finished." |
当然,这只是一个比较简单的解决方案,其实通过read, […]