태그 보관물: compression

compression

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

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



답변

사용 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를 사용하는 경향이 있습니다.


답변

대안 : cpio

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

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

cpio -id < myfolder.cpio

주의 사항 :

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

답변