다양한 하위 폴더를 대량으로 압축하는 방법은 무엇입니까?

다양한 하위 폴더를 대량으로 압축하는 방법은 무엇입니까?

all_folders5개의 폴더가 포함된 폴더가 있습니다 .

./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. 테스트하려면 명령이 체크아웃되는지 확인하기 위해 echoinfront 를 배치하십시오.tar

그러나 이와 같은 아카이브 모음을 만드는 것은 일반적으로 바람직하지 않습니다. 일반적으로 전체 컬렉션을 압축하거나 이러한 파일이 있는 드라이브의 투명한 압축을 사용하거나 전송 압축( X-DEFLATE예: HTTP 사용)을 사용하려고 합니다.

"압축된 디렉터리"가 아니라 "압축된 아카이브"로 끝나게 된다는 점에 유의하십시오. 아카이브는 파일 자체이고 디렉터리는 단순한 것이므로 이러한 항목은 서로 바꿔 사용할 수 없습니다.아이노드데이터그램.

답변3

tar -zcvf archive.tar.gz directory/ 

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

현재 디렉토리에 아카이브의 압축을 풀고 압축을 풀려면

tar -zxvf archive.tar.gz 

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

관련 정보