하위 디렉토리로 cds하는 디렉토리에서 스크립트를 실행하고 스크립트가 해당 하위 디렉토리로 cds한 다음 명령을 실행하려면 어떻게 해야 합니까?

하위 디렉토리로 cds하는 디렉토리에서 스크립트를 실행하고 스크립트가 해당 하위 디렉토리로 cds한 다음 명령을 실행하려면 어떻게 해야 합니까?

명령을 실행하려는 하위 디렉터리가 더 많이 포함된 하위 디렉터리가 포함된 폴더가 있습니다. 아래 코드는 지금까지 작성한 스크립트입니다.

#!/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

루프가 필요 없으며 쉘이 무거운 작업을 수행하도록 하십시오.

답변2

대신 이것을 사용할 수 있습니다 find.

find . -name "*.mol12.gz" -exec gzip -d {} +

그런 다음 다시 검색한 후 파일을 이동하면 됩니다.

관련 정보