Bash 스크립트를 작성하다 보면,
“파일이 존재하는가?”, “읽기 권한이 있는가?” 같은 조건을 확인해야 할 때가 많습니다.
이럴 때 사용하는 것이 바로 파일 테스트 연산자(File Test Operators) 입니다.
파일 존재 여부와 종류 확인
| 연산자 | 의미 | 설명 |
| -e | 파일 존재 여부 | 지정한 경로에 파일 또는 디렉토리가 존재하는지 확인 |
| -f | 일반 파일 여부 | regular file인지(텍스트나 데이터 파일 등) 확인 |
| -d | 디렉토리 여부 | 해당 경로가 디렉토리인지 확인 |
| -b | 블록 디바이스 여부 | 예: 하드디스크, USB 등 block device 파일 |
| -c | 문자 디바이스 여부 | 예: 키보드, 터미널 등 character device 파일 |
| -L | 심볼릭 링크 여부 | symbolic link인지 확인 |
예시:
if [ -d "/home/user/docs" ]; then
echo "디렉토리가 존재합니다."
fi
파일 권한 확인
| 연산자 | 의미 | 설명 |
| -r | 읽기 권한 | 현재 사용자에게 읽기 권한이 있는지 확인 |
| -w | 쓰기 권한 | 현재 사용자에게 쓰기 권한이 있는지 확인 |
| -x | 실행 권한 | 현재 사용자에게 실행 권한이 있는지 확인 |
예시:
file="/usr/local/bin/script.sh"
if [ -x "$file" ]; then
echo "실행 가능한 파일입니다."
else
echo "실행 권한이 없습니다."
fi
정리하면
파일 테스트 연산자는 조건문(if) 과 함께 자주 쓰이며,
시스템 스크립트나 배포 자동화, 로그 점검 등에서도 매우 유용합니다.
✅ 요약
- -e, -f, -d → 존재와 형태 확인
- -r, -w, -x → 권한 확인
- -L, -b, -c → 특수 파일 유형 확인
항상 변수를 비교할 때는 **쿼팅("$file")**을 붙여주세요!
경로에 공백이 포함되어 있으면 오류가 날 수 있습니다.
'개발 환경 및 프로젝트 관리 > Linux 개념' 카테고리의 다른 글
| Bash의 for 반복문 완벽 정리 (0) | 2025.10.08 |
|---|---|
| Bash의 Logical AND / OR (논리 연산자) (0) | 2025.10.08 |
| Bash에서 문자열 비교 (String Comparison) (0) | 2025.10.08 |
| Bash 스크립트에서 if문과 정수 비교 (0) | 2025.10.08 |
| 리눅스 파일 권한 변경 명령어: chmod 정리 (0) | 2025.10.07 |