Contents
(Linux)파일 압축 ~ 파일 위치 검색
   2022년07월22일     3분정도면 다 읽어요     - Comments

[카카오 클라우드 스쿨] 파일 압축 ~ 파일 위치 검색 관련 명령어에 대해 알아 본다

파일 압축

  • 리눅스 파일 포맷: 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


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
...