(Linux)파일 압축 ~ 파일 위치 검색
[카카오 클라우드 스쿨] 파일 압축 ~ 파일 위치 검색 관련 명령어에 대해 알아 본다
파일 압축
- 리눅스 파일 포맷: raw(파일), tar(묶음), gz(압축), gcow2, vmdk 등이 있음
- 묶음 파일 포맷: tar
- 압축 파일 포맷: gzip, zip, bunzip, xz(최신, 높은 앞축)
1 . TAR로 압축할 파일 묶기
- 압축하기 전 TAR로 묶는 과정이 필요함
- tar cvf my.tar /test
- /test 디렉터리 내에 있는 모든 파일과 디렉터리를 my.tar로 묶겠다
[root@srv7 0722]# mkdir test
[root@srv7 0722]# touch test/a.txt test/b.txt test/c.txt
[root@srv7 0722]# tree
.
└── test
├── a.txt
├── b.txt
└── c.txt
1 directory, 3 files
[root@srv7 0722]# tar cvf my.tar test/
test/
test/a.txt
test/b.txt
test/c.txt
[root@srv7 0722]# ls
my.tar test
- TAR로 묶은것 풀기
[root@srv7 0722]# rm -rf test
[root@srv7 0722]# tar xvf my.tar
test/
test/a.txt
test/b.txt
test/c.txt
[root@srv7 0722]# ls
my.tar test
2 . 묶음 파일 압축하기
- xz: tar cvfJ my.tar.xz test/
- gzip: tar cvfz my.tar.gz test/
- bzip2: tar cvfj my.tar.bz2 test/
[root@srv7 0722]# tar cvfz my.tar.gz test/
test/
test/a.txt
test/b.txt
test/c.txt
[root@srv7 0722]# ls
my.tar.gz test
- 압축풀고 묶음풀기
- xz: tar xvfJ my.tar.xz test/
- gzip: tar xvfz my.tar.gz test/
- bzip2: tar xvfj my.tar.bz2 test/
[root@srv7 0722]# rm -rf test
[root@srv7 0722]# tar xvfz my.tar.gz test/
test/
test/a.txt
test/b.txt
test/c.txt
[root@srv7 0722]# ls
my.tar.gz test
파일 위치 검색
1. find
- 파일이 수정된 날짜/시간 확인 가능
- 다음 세 가지 옵션과 같이 쓰인다
- atime, mtime, ctime
- atime (access time, 접근 시간)
- 파일에 접근한 시간
- 파일을 열어서 보기만 해도 바뀜
- cat, vi 등 읽을때에 바뀜
- ls -lu 명령어로 확인 가능
- find /usr/bin -atime -4 -type f -ls
- 해당 경로에서 atime 3일이내.
- type: file의 ls명령어 실행
- 접근한 시간만 출력함
- mtime (modification time, 수정 시간)
- 파일의 내용을 열고 수정한 경우 바뀜
- mtime이 변경되면 ctime, atime 값이 다 변경되는 것이 일반적
- ls 명령어: mtime 기준
- find /usr/bin -mtime -4 -type f -ls
- 수정한 시간을 출력함
- ctime (change time, 속성이 바뀐 시간)
- 파일의 “내용”을 수정한 것이 아니라, 파일의 고유번호(inode), 퍼미션(chmod 사용 등), 소유권이 변경된 경우 바뀜
- inode: 파일 속성, 권한, 크기 등
- inode는 ls -lc 명령어로 확인 가능
- 변경되면 안되는 파일(db conf 파일 등)이 바뀐 경우, 누군가 접속해서 악의적으로 코드를 수정한 것일 가능성!
- find /usr/bin -ctime -4 -type f -ls
- 파일의 “내용”을 수정한 것이 아니라, 파일의 고유번호(inode), 퍼미션(chmod 사용 등), 소유권이 변경된 경우 바뀜
2. which
- 실행 파일이 어디에 있는지 찾고 싶을 때 실행한다
- 명령어를 바로 써도 무방하기 때문에 많이 사용하지는 않는다
[root@srv7 ~]# which mysql
/bin/mysql
[root@srv7 ~]# which httpd
/sbin/httpd
3. locate
- find: a,c,m 시간 찾을 때 자주 사용
- which: 실행 파일 찾을 떄 자주 사용
- locate: 진짜 많이 사용, 파일을 진짜 검색함
[root@srv7 ~]# locate mariadb
/etc/ld.so.conf.d/mariadb-x86_64.conf
/etc/logrotate.d/mariadb
/etc/systemd/system/multi-user.target.wants/mariadb.service
...