본문 바로가기
리눅스공부/명령어와 필수 작동법

[작동방법 / 명령어] 리눅스 파일 압축, 파일 위치 검색

by 으노으뇨 2022. 12. 8.
728x90
반응형
SMALL

파일압축과 묶기는 사용이 간단하고 앞으로 서버 구축부분에서 자주 다루게 된다.


파일 압축

리눅스에서 많이 보는 압축 파일의 확장명은  xz, bz2, gz, zip, Z 등이다 예전에는 주로 gz를 사용헀으나, 최근에는 압축률이 더 좋은 xz, ,bz2를 많이 사용하는 추세다.

 xz
확장명 xz로 압축하거나 풀어준다. 비교적 최신 압축 명령으로 압축률이 뛰어나다.
xz 파일이름 해당 파일을 압축파일인 파일이름.xz로 만든다. 기존 파일은 삭제된다.
xz -d 파일이름.xz (d는 Decompress를 의미) 압축을 풀어분다.
xz -l 파일이름.xz  (l은 List를 의미) 파일이름. xz 압축 파일에 포함된 파일 목록과 압출률 등 출력
xz -k 파일이름 (k는 Keep을 의미) 압축 후 기존 파일을 삭제하지 않고 그대로 둠
bzip2
확장명 bz2로 압축하거나 풀어준다.
bzip2 파일이름 파일을 압축파일 파일로 만듦
bzip2 -d 파일이름.bz2 == bunzip2 파일이름.bz2 압축을 풀어준다. 즉 해당 파일이름으로된 bz2을 압축풀어서 해당 파일을 만듦
bzip2 -k 파일이름  압축 후 기존 파일을 삭제하지 않고 그대로 둠
gzip
확장명 gz으로 압축하거나 풀어준다.
gzip 파일이름 파일이름을 압축 파일인 파일명.gz로 만들어준다.
gzip -d 파일이름.gz == gunzip 파일이름.gz 압축을 풀어준다. 그리고 파일이름.gz를 압축을 풀어 파일이름이라는 파일로 만든다.
zip / unzip
windows 용과 호환되는 확장명 zip으로 압축하거나 풀어준다.
zip 새로생성될파일이름.zip 압축할 파일이름을 새로생성될파일이름.zip으로 만들어준다.
기존 파일은 그대로 남아있다.
upzip 압축파일이름.zip 압축파일이름.zip의 압축을 풀어준다.
압축 파일은 그대로 남아있음

파일묶기

알집이나 반디집과 같은 windows용 압축프로그램을 생각해보면 aaa,bbb라는 2개 파일을 압축했을 때 ccc.zip 이라는 1개의 압축파일이 생긴다. 즉 aaa,bbb라는 두 파일이 ccc라는 1개의 파일로 묶인 후 압축된 것이다.

이는 windows 압축 프로그램이 파일 압축과 파일묶기를 한꺼번에 진행한것이다.

이와 달리 리눅스에선느 파일 압축과 파일 묶기를 원칙적으로 별개의 프로그램으로 실행하도록 되어있다. 물론 사용자 편의를 위해 한번에 할 수 있도록 하는 옵션도 있다. 파일 묶기의 명령어는 tar이며 묶인 파일의 확장명도 tar이다.

tar
확장명 tar묶음 파일을 만들거나 묶음을 풀어준다.
동작
c (소문자) 새로운 묶음을 만듦
x 묶인 파일을 풀어줌
t 묶음을 풀기 전에 묶인 경로를 보여준다.
C (대문자) 묶음을 풀때 지정된 디렉터리에 압축을 풀어준다. 지정하지 않으면 묶을 때와 동일한 디렉터리에 묶음이 풀린다.
옵션
f  (대문자) 묶음 파일 이름 지정, 원래 tar는 테이프 장치 백업이 기본임 
(생략하면 테이프로 보내짐)
v visual 의 의미로 파일을 묶거나 푸는 과정을 보여준다
(생략가능)
J (대문자)  tar + xz
z (소문자) tar + gzip
j (소문자) tar + bzip2
 
tar cvf my.tar /etc/systemd/ 묶기
tar cvJ my.tar.xz /etc/systemd/ 묶기 + xz 압축
tar cvz my.tar.gz /etc/systemd/ 묶기 + gzip 압축
tar cvj my.tar.bz2 /etc/systemd/ 묶기 + bzip2 압축
tar tvf my.tar 파일 확인
tar xvf my.tar  tar 풀기
tar Cxvf newdir my.tar newdirdp tar 풀기
tar xfJ my.tar.xz xz  압축 해제 + tar 풀기
tar xfz my.tar.gz gzip 압축 해제  + tar 풀기
tar xfj my.tar.bz2 bzip2 압축 해제  + tar 풀기

파일 위치 검색

리눅스에서 특정 파일의 위치를 검색하는 명령어는 다음과 같다. 가장많이 사용되는 명령어는 find이다.

find {경로}  {옵션}  {조건}
이런식으로 명령어 작성한다.
옵션
-name   ,   -user(소유자),   -newer(전, 후)   -pern(허가권),   -size(크기)
action
-print(기본값),   -exec(외부 명령 실행)
find /etc -name "*.conf" /etc 디렉터리 하위에서 확장명이 *.conf인 파일 검색
find /home -user ubuntu /home 디렉터리 하위에서 소유자가 ubuntu인 파일 검색
find ~ -perm 644 현재 사용자의 홈 디렉터리 하위에서 허가권이 644인 파일 검색
find /usr/bin -size +10k -size -100k /usr/bin 디렉터리 하위에서 파일 크기가 10KB~100KB인 파일 검색
find ~ -size 0k -exec ls -l { } \; 현재 사용자의 홈 디렉터리 하위에서 파일 크기가 0인 파일의 목록을 상세히 출력
find /home -name -name "*.swp" -exec rm { } \; /home 디렉터리 하위에서 확장명이 "*. swp"인 파일 삭제

 

which 실행파일 이름
Path 에 설정된 디렉터리만 검색
절대 경로를 포함한 위치검색
whereis 실행파일이름
실행파일 및 소스, man 페이지 파일까지 검색
locate 파일이름
파일목록 데이터베이스에서 검색하기 때문에 매우 빠르고 유용하지만, 패키지를 추가 설치하는 등의 작업 때문에 파일이 변경된다면 updateDB 명령을 실행해야 변경된 파일이 검색됨

[ which , whereis , locate ] 명령어 사용한 모습
locate 명령이 작동하지 않으면 먼저 mlocate 패키지를 설치한다.
엄청많이 나온다ㅓ...


 

728x90
반응형
LIST

댓글