파일 압축·해제 유틸리티
파일 압축·해제 유틸리티 (File Archiving Utilities)
bzip2, gzip, tar, zip 같은 압축 파일을 만들고 푸는 함수들을 Octave에서 바로 쓸 수 있어요. 파일 목록을 압축하고, 아카이브를 풀고, 확장자에 맞춰 자동으로 푸는 unpack까지 살펴볼게요. Octave 매뉴얼 36.3절을 정리해 봤어요.
본문
bunzip2 (bzfile), bunzip2 (bzfile, dir), filelist = bunzip2 (…) — bzip2 아카이브 bzfile을 풀어요. dir을 지정하면 파일이 bzfile이 있는 곳이 아니라 그 디렉토리에 풀립니다. 선택 출력 filelist는 압축이 풀린 파일들의 목록이에요. See also: bzip2, unpack, gunzip, unzip, untar.
filelist = gzip (files), filelist = gzip (files, dir) — files에 지정된 파일과 디렉토리 목록을 압축해요. files는 문자 배열 또는 문자열 셀 배열이에요. 파일 이름의 셸 와일드카드(*, ? 같은)는 허용되고 확장됩니다. 각 파일은 따로 압축되어 .gz 확장자가 붙은 새 파일이 만들어져요. 원본 파일은 수정되지 않지만, 이미 있는 압축 파일은 조용히 덮어써집니다. 디렉토리를 지정하면 gzip은 그 디렉토리의 모든 파일을 재귀적으로 압축해요.
dir을 정의하면 압축 파일이 원래 압축되지 않은 파일이 있던 디렉토리가 아니라 이 디렉토리에 놓입니다. 이것이 dir 안에 디렉토리 트리를 복제하지는 않는다는 점을 유의하세요. 같은 이름의 파일이 여러 개 있으면 서로를 덮어쓸 수 있어요. dir이 없으면 만들어집니다. 선택 출력 filelist는 압축된 파일들의 목록이에요. See also: gunzip, unpack, bzip2, zip, tar.
gunzip (gzfile), gunzip (gzfile, outdir), filelist = gunzip (…) — gzip 아카이브 gzfile을 풀어요. gzfile이 디렉토리면 그 디렉토리의 모든 gz 파일이 재귀적으로 풀립니다. outdir을 지정하면 파일이 gzfile이 있는 곳이 아니라 그 디렉토리에 풀려요. 선택 출력 filelist는 압축이 풀린 파일들의 목록이에요. See also: gzip, unpack, bunzip2, unzip, untar.
filelist = tar (tarfile, files), filelist = tar (tarfile, files, rootdir) — files에 지정된 파일과 디렉토리 목록을 TAR 아카이브 tarfile로 묶어요. files는 문자 배열 또는 문자열 셀 배열이에요. 셸 와일드카드(*, ?)는 허용되고 확장됩니다. 디렉토리는 재귀적으로 탐색되어 모든 파일이 아카이브에 추가되죠. rootdir을 정의하면 절대 경로가 없는 모든 파일이 현재 디렉토리가 아니라 rootdir을 기준으로 위치를 잡습니다. 선택 출력 filelist는 아카이브에 포함된 파일들의 목록이에요. See also: untar, unpack, bzip2, gzip, zip.
untar (tarfile), untar (tarfile, dir), filelist = untar (…) — TAR 아카이브 tarfile을 풀어요. dir을 지정하면 파일이 현재 디렉토리가 아니라 그 디렉토리에 풀립니다. 선택 출력 filelist는 압축이 풀린 파일들의 목록이에요. See also: tar, unpack, bunzip2, gunzip, unzip.
filelist = zip (zipfile, files), filelist = zip (zipfile, files, rootdir) — files에 지정된 파일과 디렉토리 목록을 ZIP 아카이브 zipfile로 압축해요. files는 문자 배열 또는 문자열 셀 배열이에요. 셸 와일드카드(*, ?)는 허용되고 확장됩니다. 디렉토리는 재귀적으로 탐색되어 모든 파일이 압축·추가되죠. rootdir을 정의하면 절대 경로가 없는 모든 파일이 현재 디렉토리가 아니라 rootdir을 기준으로 위치를 잡습니다. 선택 출력 filelist는 아카이브에 포함된 파일들의 목록이에요. See also: unzip, unpack, bzip2, gzip, tar.
unzip (zipfile), unzip (zipfile, dir), filelist = unzip (…) — ZIP 아카이브 zipfile을 풀어요. dir을 지정하면 파일이 현재 디렉토리가 아니라 그 디렉토리에 풀립니다. 선택 출력 filelist는 압축이 풀린 파일들의 목록이에요. See also: zip, unpack, bunzip2, gunzip, untar.
files = unpack (file), files = unpack (file, dir), files = unpack (file, dir, filetype) — 아카이브 파일 file을 그 확장자에 따라 디렉토리 dir로 풀어요. file이 문자열 목록이면 각 파일이 개별적으로 풀립니다. 셸 와일드카드(*, ?)는 허용되고 확장됩니다. dir이 지정되지 않거나 비어 있으면([]) 기본은 현재 디렉토리예요. 파일 목록에 디렉토리가 있으면 filetype도 반드시 지정해야 합니다.
구체적인 아카이브 파일 유형은 파일의 확장자에서 추론돼요. filetype은 알려진 확장자에 해당하는 문자열을 직접 지정할 수도 있습니다. 유효한 filetype 확장자는 다음과 같아요.
- bz, bz2 — bzip 아카이브
- gz — gzip 아카이브
- tar — tar 아카이브
- tarbz, tarbz2, tbz, tbz2 — tar + bzip 아카이브
- targz, tgz — tar + gzip 아카이브
- z — compress 아카이브
- zip — zip 아카이브
선택 반환값은 압축이 풀린 파일들의 목록이에요. See also: bunzip2, gunzip, unzip, untar, bzip2, gzip, zip, tar.
filelist = bzip2 (files), filelist = bzip2 (files, dir) — files에 지정된 파일 목록을 압축해요. files는 문자 배열 또는 문자열 셀 배열이에요. 셸 와일드카드(*, ?)는 허용되고 확장됩니다. 각 파일은 따로 압축되어 .bz2 확장자가 붙은 새 파일이 만들어집니다. 원본 파일은 수정되지 않지만, 이미 있는 압축 파일은 조용히 덮어써집니다. dir을 정의하면 압축 파일이 원래 압축되지 않은 파일이 있던 디렉토리가 아니라 이 디렉토리에 놓여요. 이것이 dir 안에 디렉토리 트리를 복제하지는 않는다는 점을 유의하세요. 같은 이름의 파일이 여러 개 있으면 서로를 덮어쓸 수 있어요. dir이 없으면 만들어집니다. 선택 출력 filelist는 압축된 파일들의 목록이에요. See also: bunzip2, unpack, gzip, zip, tar.
더 알아보기
- octave-opening-and-closing-files — 파일 열기와 닫기
- octave-input-and-output — 입출력 전반
- octave-controlling-subprocesses — 서브프로세스 제어와 시스템 명령