여러 폴더가있는 디렉토리가 있으며 각 폴더에는 .gz 파일이 있습니다. 한 번에 모두 압축을 풀려면 어떻게해야합니까?
내 데이터는 다음과 같습니다.
폴더 목록
A B C D
모든 파일에는
A a.out.gz B b.out.gz C c.out.gz D d.out.gz
댓글
답변
gunzip
: 폴더의 모든 파일의 압축을 풀고 끝이 .out.gz
gunzip */*.out.gz
“루프”됩니다 * 압축 파일이있는 모든 폴더를 통해. 예를 추가하겠습니다.
A a.out.gz B b.out.gz C c.out.gz D d.out.gz E e.out
위의 명령을 사용하여 a.out.gz
b.out.gz
c.out.gz
d.out.gz
는 모두 압축이 풀리지 만 e.out
압축되지 않았기 때문입니다.
* 글 로빙 또는 파일 이름 확장 이라고합니다. 이에 대한 자세한 내용은 여기 를 참조하세요.
댓글
- 그러나 각 폴더에 zip 파일이 포함 된 여러 폴더가 있으면 어떻게됩니까? 모든 폴더를 어떻게 반복 할 수 있나요?
-
*/*.out.gz
는 모든 폴더를 반복합니다 ('는*/
부분) - @HoHoHo는 mazs가 지적했듯이 " 루프 ". ' 개념을 추가로 설명하는 페이지에 대한 추가 설명과 링크를 추가했습니다.
답변
find . -type f -name "*.gz" -execdir gunzip {} \;
execdir 옵션을 사용하면 “find”가 각 디렉토리로 차례로 “cd”가되고 exec 명령 (gunzip in 이 경우) 그런 다음 “cd”를 다시 cwd
gunzip */*.gz
?