Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- AWS EKS
- CKA
- AI
- kotlin querydsl
- CKA 기출문제
- Linux
- mysql 튜닝
- Elasticsearch
- kotlin
- aws
- 티스토리챌린지
- Java
- IntelliJ
- Pinpoint
- MySQL
- minikube
- 기록으로 실력을 쌓자
- Kubernetes
- kotlin spring
- CloudWatch
- 공부
- Spring
- kotlin coroutine
- PETERICA
- 오블완
- 정보처리기사 실기
- 정보처리기사실기 기출문제
- APM
- 정보처리기사 실기 기출문제
- 코틀린 코루틴의 정석
Archives
- Today
- Total
피터의 개발이야기
[shell] 파일 폴더 압축 tar shell 본문
반응형
파일 폴더를 압축하고 에러 처리가 가능한 shell(tar 버젼)
#!/bin/bash
# 압축할 폴더와 결과 파일 이름을 인자로 받음
SOURCE_DIR="$1"
OUTPUT_FILE="$2"
# 함수: 에러 메시지 출력 및 종료
error_exit() {
echo "에러: $1" >&2
exit 1
}
# 인자 개수 확인
if [ $# -ne 2 ]; then
error_exit "사용법: $0 <압축할_폴더> <결과_파일.tar.gz>"
fi
# 소스 디렉토리 존재 확인
if [ ! -d "$SOURCE_DIR" ]; then
error_exit "지정한 폴더가 존재하지 않습니다: $SOURCE_DIR"
fi
# 출력 파일 이름이 .tar.gz로 끝나는지 확인
if [[ "$OUTPUT_FILE" != *.tar.gz ]]; then
OUTPUT_FILE="${OUTPUT_FILE}.tar.gz"
echo "출력 파일 이름을 $OUTPUT_FILE로 변경했습니다."
fi
# 압축 진행: -C
echo "압축 시작: $SOURCE_DIR -> $OUTPUT_FILE"
if tar -czf "$OUTPUT_FILE" -C "$(dirname "$SOURCE_DIR")" "$(basename "$SOURCE_DIR")" 2>/dev/null; then
echo "압축 완료: $OUTPUT_FILE"
else
error_exit "압축 과정에서 오류가 발생했습니다."
fi
# 압축 파일 크기 확인
FILE_SIZE=$(du -h "$OUTPUT_FILE" | cut -f1)
echo "압축 파일 크기: $FILE_SIZE"
# 압축 파일 존재 확인
if [ -f "$OUTPUT_FILE" ]; then
echo "압축 파일이 성공적으로 생성되었습니다: $OUTPUT_FILE"
else
error_exit "압축 파일 생성에 실패했습니다."
fi
옵션 | 설명 |
-c | 파일을 tar로 묶음 |
-p | 파일 권한을 저장 |
-v | 묶거나 파일을 풀 때 과정을 화면으로 출력 |
-f | 파일 이름을 지정 |
-C | 경로를 지정 |
-x | tar 압축을 풂 |
-z | gzip으로 압축하거나 해제함 |
출처: https://nota.tistory.com/53 [nota's story:티스토리]
반응형
'Linux > Shell Script' 카테고리의 다른 글
[Shell] linux shell script 반복문 (0) | 2024.10.16 |
---|---|
터미널에서 맥미니 재기동 및 Docker 가동 방법 (0) | 2024.07.15 |
[shell] JPATH 사용법 (0) | 2024.01.28 |
디렉토리별 용량 정렬, du 크기별 정렬 방법 (0) | 2024.01.16 |
[Shell] Shell - 파일 읽어 처리하기 (0) | 2022.09.17 |
Comments