답변:
사용 tar
:
tar -cf my_big_folder.tar /my/big/folder
다음으로 아카이브를 복원하십시오. tar -xf my_big_folder.tar -C /
위에서 만든 아카이브에 절대 경로가 있으므로 -C 는 루트 디렉토리로 변경하여 아카이브를 복원합니다.
편집 : 아카이브의 크기가 비교적 크기 때문에 SSH 또는 클라우드 리소스 / 폴더의 마운트 지점을 사용하여 최종 위치로 [직접] 전송하는 것이 가장 좋습니다. 예를 들어 Cole Johnson은 다음 과 같이 제안합니다 .
tar -cf /network/mount/point/my_big_folder.tar /my/big/folder
또는
tar -c /my/big/folder | ssh example.com "cat > my_big_folder.tar"
편집 : Blacklight Shining은 또한 제안합니다 . 절대 경로를 피하려면 큰 폴더의 부모로 변경할 수 있습니다 tar
.
tar -cf /network/mount/point/my_big_folder.tar \
-C /my/big/folder/location the_big_folder
또는
tar -cC /my/big/folder/location the_big_folder | \
ssh example.com "cat > my_big_folder.tar"
상대 또는 절대 경로를 포함할지 여부는 개인적 선호의 문제입니다.
예를 들어 재난 복구 상황에서 복원하는 경우 절대 경로가 분명한 경우가 있습니다. 로컬 프로젝트 또는 콜렉션의 경우, 아카이브가 실수로 압축 해제 된 경우 현재 디렉토리를 어지럽히 지 않도록 원하는 폴더의 상위 디렉토리에서 디렉토리 트리를 아카이브하는 것이 일반적입니다. 경우 big_folder 거짓말 어딘가에 깊이에서 표준 *의 NIX 계층 , 그것은 최초의 표준이 아닌 폴더를 보관 시작 어떤 의미를 만들 수있는 위치 big_folder 에서 벗어나는 거기로부터 디렉토리 트리.
마지막으로 - 여기 현학적가는 - tar
아카이브 멤버는 항상 있기 때문에 상대 )를 그들은 어떤 디렉토리에 복원 할 수 있으며, b)는 tar
선두 제거 /
아카이브를 생성 할 때. 개인적 으로 아카이브 압축을 풀 때 항상 -C를 사용하는 경향이 있습니다.
tar -cf /network/mount/point/folder.tar /folder
로컬 컴퓨터를 변경하고 가능한 경우 업로드하는 대신 수행
tar -cf $archive.tar -C $source_dir .
있습니다. 대상 컴퓨터가 소스 디렉토리와 동일한 경로 디렉토리가없는 경우, 당신은 것입니다 필요 그렇게. -C
압축을 풀 때 새 디렉토리 에 들어가십시오 ( mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir
); 그렇지 않으면 아카이브 내용이 들어간 디렉토리에 덤프됩니다.
대안 : cpio
(cd /my/big/folder && find . -depth -print0 | cpio -0o > myfolder.cpio)
현재 디렉토리로 압축 풀기 :
cpio -id < myfolder.cpio
주의 사항 :
find /my/big/folder
대신 에을 사용 cd
하면 아카이브에 전체 경로가 포함되고 추출이 경로를 따르려고 시도합니다.
tar
리눅스 에는 명령이 있습니다.tar -cf long.file.tar folder