여러 하위 폴더를 일괄 압축하는 방법은 무엇입니까?

여러 하위 폴더를 일괄 압축하는 방법은 무엇입니까?

5개의 폴더가 있는 폴더가 있습니다 all_folders.

./all_folders
./all_folders/folder1
./all_folders/folder2
./all_folders/folder3
./all_folders/folder4
./all_folders/folder5

하나의 명령을 사용하여 이러한 모든 폴더를 한 번에 압축할 수 있습니까? all_folders디렉토리로 이동한 다음 해당 디렉토리 내의 개별 폴더가 압축되도록 명령을 실행하고 싶습니다 .

예상 출력은 다음과 같습니다.

내가 할 때

ls 

, 그러면 all_folders10개의 디렉토리가 있어야 합니다. 5개는 압축되지 않은 상태이고 5개는 압축된 상태입니다.

답변1

cd입력 all_folders하고 실행

for i in folder1 folder2 folder3 folder4 folder5; do tar czf $i.tar.gz $i; done

답변2

무엇을 달성하고 싶은지 약간 불분명합니다. 여기서는 하위 디렉터리만 압축해야 하는 사용 사례를 실행하고 있습니다.

먼저 디렉터리 컬렉션이 포함된 디렉터리로 이동한 후 다음을 수행합니다.

find -maxdepth 1 -type d | {
    while read dir; do 
        if [ ! "x${dir#*/}" = "x." ]; then
            tar cJf ${dir#*/}.tar.xz ${dir#*/};
        fi;
    done
}

이는 와 동일합니다 . 을 앞에 zsh배치하여 명령이 체크아웃되는지 확인합니다.echotar

그러나 이와 같은 아카이브를 수집하는 것은 일반적으로 권장되지 않습니다. 일반적으로 전체 컬렉션을 압축하거나, 파일이 있는 드라이브에서 투명한 압축을 사용하거나, 전송 압축( X-DEFLATE예: HTTP 사용)을 사용하려고 합니다.

"압축된 디렉터리"가 아니라 "압축된 아카이브"로 끝나는 점에 유의하세요. 아카이브 자체는 파일이고 디렉터리는 파일일 뿐이므로 이러한 항목은 서로 바꿔 사용할 수 없습니다.인덱스 노드데이터그램.

답변3

tar -zcvf archive.tar.gz directory/ 

이는 tar에게 디렉터리의 파일에서 아카이브를 생성(만들기)하도록 지시하고(tar는 기본적으로 재귀적입니다), z(gzip) 알고리즘을 사용하여 압축하고, 출력을 archive.tar.gz(파일)라는 이름의 af로 저장합니다. ), v(상세하게)는 아카이브에 추가하는 모든 파일을 나열합니다.

아카이브의 압축을 풀고 현재 디렉토리에 추출하려면 다음을 사용할 수 있습니다.

tar -zxvf archive.tar.gz 

여기에 이미지 설명을 입력하세요.

관련 정보