본문 바로가기
운영체제/리눅스(CentOS)

tar 명령어로 파일 압축 시 시간 관련 정보 포함하기

by 마루의 일상 2024. 6. 14.
728x90
반응형

 

파일을 압축할 때 파일의 생성 시간, 수정 시간, 접근 시간을 포함하는 방법을 알고 계신가요? tar 명령어는 이런 메타데이터를 기본적으로 포함하지만, 좀 더 확실히 하기 위해 몇 가지 옵션을 사용할 수 있습니다. 이번 포스팅에서는 tar 명령어를 사용하여 파일의 시간 정보를 포함하여 압축하는 방법을 알아보겠습니다.

tar 명령어란?

tar는 Tape Archive의 약자로, 여러 파일을 하나의 파일로 묶거나, 묶인 파일을 해제할 때 사용하는 명령어입니다. 주로 백업 및 배포 목적으로 사용됩니다. tar 파일은 일반적으로 .tar 확장자를 가지며, 압축을 추가할 경우 .tar.gz, .tar.bz2 등의 확장자를 사용합니다.

시간 관련 정보란?

파일에는 다음과 같은 시간 정보가 포함됩니다:

  • 수정 시간 (mtime): 파일의 내용이 마지막으로 수정된 시간
  • 접근 시간 (atime): 파일이 마지막으로 읽힌 시간
  • 변경 시간 (ctime): 파일의 속성이나 권한 등이 마지막으로 변경된 시간

tar 명령어로 시간 정보 포함하여 압축하기

기본적으로 tar 명령어는 시간 정보를 포함하여 파일을 압축합니다. 다음 명령어를 사용하면 파일의 시간 정보와 함께 압축할 수 있습니다:

 
/data/htdocs/web 폴더가 있을경우
tar -cvpzf web.tar.gz /data/htdocs/web
  • -c: 새 아카이브 생성
  • -v: 처리 과정을 화면에 출력 (선택 사항)
  • -p: 파일 권한과 속성을 그대로 보존
  • -z: gzip으로 압축
  • -f: 아카이브 파일 이름 지정

위 명령어는 /data/htdocs/web를 web.tar.gz로 압축하며, 파일의 시간 정보와 권한을 보존합니다.

압축 해제 시 시간 정보 보존하기

압축 해제 시에도 시간 정보를 유지하려면 다음 명령어를 사용합니다:

tar -xvpzf web.tar.gz

옵션 설명:

  • -x: 아카이브 해제
  • -v: 처리 과정을 화면에 출력 (선택 사항)
  • -p: 파일 권한과 속성을 그대로 보존
  • -z: gzip 압축 해제
  • -f: 아카이브 파일 이름 지정

이 명령어는 archive.tar.gz를 현재 디렉토리에 해제하며, 파일의 시간 정보와 권한을 그대로 유지합니다.

예제: 특정 파일만 압축하기

특정 파일만 압축하고 싶다면, tar 명령어와 함께 find 명령어를 사용할 수 있습니다. 예를 들어, today_log로 시작하는 모든 파일을 찾아 압축하려면 다음과 같이 합니다:

bash
코드 복사
find ./ -name "*today_log*" -print | tar -cvpzf archive.tar.gz -T -

옵션 설명:

  • find ./ -name "* today_log*" -print: 현재 디렉토리에서 today_log 로 시작하는 파일을 찾음
  • |: 파이프를 사용하여 find 명령어의 출력을 tar 명령어의 입력으로 전달
  • tar -cvpzf web.tar.gz -T -: find 명령어의 출력을 사용하여 파일을 압축

결론

이제 tar 명령어를 사용하여 파일을 압축할 때 시간 정보를 포함하는 방법을 알게 되셨습니다. tar 명령어는 기본적으로 시간 정보를 포함하지만, -p 옵션을 사용하여 파일 권한과 속성을 보존할 수 있습니다. 이 방법을 사용하면 파일의 중요한 메타데이터를 유지하면서 안전하게 압축할 수 있습니다.

이 글이 도움이 되셨다면, 댓글로 알려주시거나 공유해 주세요! 압축 관련 더 많은 팁과 트릭을 다음 포스팅에서 다루겠습니다.

728x90
반응형