如何执行目录中的脚本以 cd 进入子目录,该脚本将 cd 进入其子目录,然后执行命令?

如何执行目录中的脚本以 cd 进入子目录,该脚本将 cd 进入其子目录,然后执行命令?

我有一个包含子目录的文件夹,这些子目录有更多我想要执行命令的子目录。下面的代码是我迄今为止编写的脚本。

#!/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 {} +

然后您可以再次查找后移动文件

相关内容