
이 디렉토리에는 약 10,000개의 파일이 있으며 그 중 일부는 .fits이고 일부는 .tar입니다. 이제 .tar 파일의 압축을 풀기만 하면 됩니다. if 조건을 실행하는 것이 타당해 보이지만 untar 명령 "xvf"는 파일별로만 작동하므로 루프를 사용할 수 없습니다.
답변1
untar 명령 "xvf"는 파일별로만 작동합니다.
이는 루프를 활용합니다.필요한:
for file in ./*.tar; do tar xvf "$file"; done
답변2
실제로 find
루프 없이도 이 작업을 수행할 수 있습니다. 이와 같이:
find -iname '*.tar' -maxdepth 1 -exec tar xvf '{}' \;
논리는 다음과 같습니다.
-iname
확장자가 있는 파일과 일치합니다.tar
(대소문자 구분 안 함).-maxdepth 1
일치를 깊이 1로 제한합니다(따라서./*/*.tar
일치하는 항목이 없음).- 마지막으로 일치하는 파일에 대해 명령을 실행합니다
-exec
(참고, 이스케이프가 필요합니다. 자세한 내용은 참조).tar xvf
;
{}
find(1)