zip 및 tar.gz 파일을 파일 시스템에 디렉터리로 통합할 수 있습니까?

zip 및 tar.gz 파일을 파일 시스템에 디렉터리로 통합할 수 있습니까?

압축된 파일을 파일 시스템에 디렉터리로 통합할 수 있는 방법이 있는지 궁금합니다(마운팅과 약간 다르다고 가정합니다).

예를 들어 파일을 compressed-file.tar.gz로컬 하드 드라이브에 다운로드한 다음 cd compressed-file.tar.gz압축 폴더 내에서 스크립트를 실행 및 실행하거나 cp some-file ..파일 중 하나를 추출할 수 있습니다.

알아요BTRFS압축이 지원되지만 이 기능을 지원하기 위해 가지고 있는 파일 시스템(ext3)을 변경하고 싶지 않습니다.

답변1

이 명령을 사용하여 archivemount아카이브(예: )를 마운트 할 수 있습니다 .tar.gz.

$ ls
files.tgz    mnt/

$ archivemount files.tgz mnt

$ ls mnt
file1    file2

[... Perform desired read/write operations on the archive via mnt/ ...]

$ umount mnt

[... Any changes are saved to the archive ...]

archivemount자세한 내용은 매뉴얼 페이지를 참조하십시오. 일반적으로 설치되지 않으므로 패키지를 설치해야 할 수도 있습니다. Fedora 19를 예로 들어 보겠습니다 archivemount.

$ sudo yum install archivemount

인용하다

답변2

당신은 FUSE파일 시스템 에 대해 이야기하고 있습니다(사용자 공간의 파일 시스템 - Linus장난감이라고 불러)또는 사용자 정의 컴파일된 커널이거나 squashfs. Squash설명과 정확히 일치하지 않습니다. 예를 들어 커널 지원 VFS를 사용하지 않고 단순히 타르볼을 마운트할 수는 없지만 물론 mksquash원하는 수의 파일이나 디렉터리를 가져와서 넣을 수 있습니다. 결과 아카이브는 다음과 같습니다. 읽기 전용으로 설치되었습니다. xz, lzma, or gz압축 방식을 선택할 수 있습니다 . Squash항상 사용됨 - 라이브 Linux 이미지를 사용해 본 적이 있다면 아마도 그럴 가능성이 높습니다.squashed.

제가 사용하는 비법을 알려드리겠습니다. 저는 이미지 파일을 squashfs.만들어서 이를 사용하여btrfsbtrfstune -S 1seed용량. 그런 다음 해당 이미지를 squashfs아카이브에 넣었습니다 . 거기에서 mount -o loop이미지를 볼 수 있습니다. image.sfsmount -o loopbtrfs

볼륨은 btrfs seed처음에 다음과 같이 마운트됩니다. read-only이는 루프 설치에 포함되어 있다는 점을 고려하면 예상되는 현상입니다 squashed. 하지만 이렇게 하면:

GB_tmp_loop=$(
    fallocate -l $((1024*1024*1024)) /tmp/1GB_tmp.img &&
    losetup -f --show $_
)
btrfs device add "$GB_tmp_loop" "${btrfs_seed=/path/to/btrfs_image_mount}"
umount "$btrfs_seed"
mount -o compress-force=lzo,autodefrag,rw "$GB_tmp_loop" "$btrfs_seed"

btrfs갑자기 나는 s를 이용했다 .copy-on-write기능 및 자동 쓰기 압축그리고 squashfsRAM에 모두 저장되는 뛰어난 압축그리고커널에서.

답변3

당신은 그것을 사용할 수 있습니다avfs그런 다음쉘 함수 사용사용하기 쉽게 만듭니다(예 acd compressed-file.tar.gz: ).

관련 정보