압축하지 않고 단일 폴더에 큰 폴더를 저장하는 방법


11

아카이브에서 압축하는 것처럼 78gb 폴더를 가져 와서 단일 파일 (클라우드 서비스로 업로드 용)에 저장하고 싶지만 압축을 원하지 않습니다 (CPU가 많지 않습니다) 가능한 시간). 어쨌든 내가 알지 못하는 터미널 명령을 수행 할 수 있습니까?


1
tar리눅스 에는 명령이 있습니다. tar -cf long.file.tar folder
Costas

5
참고 : 빠른 압축 프로그램이 있으며, 일부는 디스크 쓰기 속도보다 빠르며, 대부분은 네트워크보다 빠릅니다. 그중 하나를 사용하면 데이터가 압축 가능한 경우 실제로 속도가 빨라집니다. 예를 들어, lzop속도를 위해 설계되었습니다.
derobert

답변:


20

사용 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로컬 컴퓨터를 변경하고 가능한 경우 업로드하는 대신 수행
Cole Johnson

정확한. 편집 내용을 많이 읽을수록 혼란스러워 보입니다. 통찰력 주셔서 감사합니다.

1
절대 경로로 아카이브를 만드는 것을 피하는 방법에 주목할 가치가 tar -cf $archive.tar -C $source_dir .있습니다. 대상 컴퓨터가 소스 디렉토리와 동일한 경로 디렉토리가없는 경우, 당신은 것입니다 필요 그렇게. -C압축을 풀 때 새 디렉토리 에 들어가십시오 ( mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir); 그렇지 않으면 아카이브 내용이 들어간 디렉토리에 덤프됩니다.
Blacklight Shining

2

대안 : cpio

(cd /my/big/folder && find . -depth -print0 | cpio -0o > myfolder.cpio)

현재 디렉토리로 압축 풀기 :

cpio -id < myfolder.cpio

주의 사항 :

  • find /my/big/folder대신 에을 사용 cd하면 아카이브에 전체 경로가 포함되고 추출이 경로를 따르려고 시도합니다.
  • 큰 파일 (> 2GB)이 문제 일 수 있습니다.

Cpio는 기본 블록 크기가 512 인 경우 tar보다 속도가 훨씬 느립니다. ( fixunix.com/sco/89900-cpio-performance-vs-tar-bit-mystery.html )
PSkocik
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.