디렉토리에 있는 파일 세트의 압축을 푸는 방법은 무엇입니까?

디렉토리에 있는 파일 세트의 압축을 푸는 방법은 무엇입니까?

이 디렉토리에는 약 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)

관련 정보