# version 1 ez2understrand for i in `ls *.tar.gz` do mkdir /dir/${i/.tar.gz//} tar zxvf $i -C /dir/${i/.tar.gz//} done
也可以使用第二种方法:
1 2 3 4 5 6 7 8
# version 2 try to use assignment method # 可以发现基本的操作是一样的,就是对应的定义的地方 # 可以考虑一下是如何使用echo和cut以及对应的-d 和 -f1是什么意思 for file in `ls *.tar` do todir=`echo $file | cut -d"." -f1` mkdir $todir && tar -xvf $file -C $todir done