我有一个包含子目录的文件夹,这些子目录有更多我想要执行命令的子目录。下面的代码是我迄今为止编写的脚本。
#!/bin/bash
for i in `ls -d ./*/`;
do
cd "$i"
for x in `ls -d ./*/`
cd "$x"
gzip -d *.mol2.gz
mv *.mol2 /path/to/directory
cd ..
done
cd ..
done
echo "Finished"
答案1
我认为你只是要求这个:
gunzip */*/*.mol2.gz
mv */*/*.mol2 /path/to/directory
不需要任何循环,让 shell 完成繁重的工作
答案2
你可以用find
它代替。
find . -name "*.mol12.gz" -exec gzip -d {} +
然后您可以再次查找后移动文件