![하위 디렉토리로 cds하는 디렉토리에서 스크립트를 실행하고 스크립트가 해당 하위 디렉토리로 cds한 다음 명령을 실행하려면 어떻게 해야 합니까?](https://linux55.com/image/217134/%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A1%9C%20cds%ED%95%98%EB%8A%94%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%97%90%EC%84%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B3%A0%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%ED%95%B4%EB%8B%B9%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EB%A1%9C%20cds%ED%95%9C%20%EB%8B%A4%EC%9D%8C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
명령을 실행하려는 하위 디렉터리가 더 많이 포함된 하위 디렉터리가 포함된 폴더가 있습니다. 아래 코드는 지금까지 작성한 스크립트입니다.
#!/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 {} +
그런 다음 다시 검색한 후 파일을 이동하면 됩니다.