08. 파일 아카이브와 백업
08. 파일 아카이브와 백업
1. 디스크 관리
디스크 파티션 나누기
파티션이란 하나의 디스크를 독립된 영역으로 나누는 작업을 의미한다. 디스크 전체를 하나의 파티션으로 사용할 수도 있고, 여러 개의 파티션으로 나누어 사용할 수도 있다. (윈도우의 C드라이브, D드라이브). sudo fdisk -l 명령어를 입력했을 때 조회되는 정보 중에서 Device 파트에 파티션 정보가 있다.
1
2
3
4
5
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 1953523711 1952473088 931G Linux filesystem
파일 시스템 생성
파일 시스템 생성은 파티션에서 파일과 디렉터리를 관리할 구조를 만드는 것이다. 이는 윈도우에서 디스크를 포맷하는 작업과 비슷하다.
파일 시스템 마운트
새로 장착한 디스크 파티션에 사용자가 접근하려면 파일 시스템을 디렉터리 계층 구조에 연결해야 한다. 이 작업을 마운트라고 한다. mount 명령으로 마운트 정보를 확인할 수 있다.
2. 디스크 사용량 보기
파일 시스템별 디스크 사용량 확인하기: df
- 기능: 디스크의 남은 공간에 대한 정보를 출력한다.
- 형식:
df [옵션] 파일시스템 - 옵션
-a: 모든 파일 시스템을 대상으로 디스크 사용량을 확인한다.-h: 디스크 사용량을 알기 쉬운 단위(GB, MB, KB 등)로 출력한다.-t 파일 시스템 종류: 파일 시스템 종류에 해당하는 디스크의 사용량을 출력한다.-T: 파일 시스템 종류도 출력한다.
디렉터리나 사용자별 디스크 사용량 확인하기: du
- 기능: 디스크의 사용 공간에 대한 정보를 출력한다.
- 형식:
du [옵션] [디렉터리] - 옵션
-s: 특정 디렉터리의 전체 사용량을 출력한다.-h: 디스크 사용량을 알기 쉬운 단위(GB, MB, KB 등)로 출력한다.
3. 파일 아카이브
아카이브 생성 및 추출: tar (tape archive)
- 기능: 파일과 디렉터리를 묶어 하나의 아카이브 파일을 생성한다. 아카이브는 파일을 묶기만 하는 것으로 파일의 크기가 줄어들지 않는다. 아카이브를 생성하면서 동시에 압축하려면
j또는z옵션을 사용한다. - 형식:
tar 동작[옵션] [아카이브 파일] [파일|디렉터리] - 동작
c (create): 새로운 tar 파일을 생성한다.tar cvf ch04.tar ch04t (table of contents): tar 파일의 내용을 출력한다.tar tvf ch04.tarx (extract): tar 파일에서 원본 파일을 추출한다.tar xvf ch04.taru (update): 수정된 파일을 업데이트한다.tar uvf ch04.tar ch04r (replace): 새로운 파일을 추가한다.tar rvf ch04.tar ch04/fileinch04
- 옵션
f: 아카이브 파일을 지정한다. 파일명을 -으로 지정하면 tar 파일 대신 표준 입력에서 읽어들인다.v: 처리하고 있는 파일의 정보를 출력한다.h: 심볼릭 링크의 원본 파일을 포함한다.p: 파일 복구 시 원래의 접근 권한을 유지한다.j:bzip2으로 압축하거나 해제한다.tar cvjf ch04.tar.bz2 ch04z:gzip으로 압축하거나 해제한다.tar czvf ch04.tar.gz ch04
4. 파일 압축
compress/uncompress.real 명령 (.Z 파일)
- 기능: 파일을 압축한다.
- 형식:
compress [옵션] 파일명 - 압축 풀기:
uncompress.real 압축파일명 - 옵션
-f: 파일을 강제로 압축한다.-v: 압축 정보를 출력한다.
zip/unzip 명령 (.zip 파일)
- 기능: 파일을 압축한다.
- 형식:
zip [옵션] 압축파일명 파일명 - 압축 풀기:
unzip 압축파일명 - 서브 명령 (옵션)
-u: 수정되거나 새로 만든 파일을 압축 파일에서 교체한다.-v: 압축 정보를 출력한다.-d: 지정한 파일을 압축 파일에서 삭제한다.-r: 디렉터리도 포함하여 압축한다.
gzip/zcat/gunzip 명령 (.gz 파일)
- 기능: 파일을 압축한다. 원본 파일은 없어지고 압축된 파일만 남는다. 디렉터리가 아닌 개별 파일들을
.gz형식으로 압축한다. - 형식:
gzip [옵션] 파일명 - 서브 명령 (옵션)
-c: 표준 출력으로 압축 파일의 내용을 출력한다.-d: 파일 압축을 해제한다.-l: 압축된 파일의 정보를 보여준다.-r: 하위 디렉터리를 탐색하여 압축한다.-v: 압축하면서 압축 정보를 화면에 출력한다.-9: 최대한 압축한다.
zcat 파일명:gzip으로 압축된 파일의 내용을 출력한다.gunzip 파일명:gzip으로 압축된 파일의 압축을 푼다.
bzip2/bzcat/bunzip2 명령 (.bz2 파일)
- 기능: 파일을 압축한다. 디렉터리를 직접 압축할 수 없으며, 하위 디렉터리의 파일들을 개별적으로 압축하지도 않는다.
- 형식:
bzip2 [옵션] 파일명 - 옵션
-d: 파일 압축을 해제한다.-v: 압축하면서 압축 정보를 화면에 출력한다.-9: 최대한 압축한다.
bzcat 파일명:bzip2으로 압축된 파일의 내용을 출력한다.bunzip2 파일명:bzip2으로 압축된 파일의 압축을 푼다.
5. 파일 복사와 변환
지정한 입력 파일을 옵션에 따라 변환하거나 복사: dd (data duplicate)
- 기능: 지정한 블록 크기만큼 파일을 복사한다.
- 형식:
dd [옵션] - 옵션
if=파일: 원본 파일of=파일: 출력 파일bs=바이트 수: 한 번에 읽어오고 기록할 바이트의 수. 기본값은 512바이트.count=블록 수: 블록 수만큼만 복사한다.conv=lcase 또는 ucase: 소문자 또는 대문자로 변환
- 예
dd if=h.txt of=h100.txt bs=100 count=1(파일 복사)dd if=/dev/null of=h100.txt count=1(파일 삭제)dd if=h.txt of=H.txt conv=ucase(대소문자 전환)
This post is licensed under CC BY 4.0 by the author.