개발 환경 및 프로젝트 관리/Linux 개념

Bash에서 파일 테스트 연산자 (File Test Operators)

Data Jun 2025. 10. 8. 10:59

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")**을 붙여주세요!
경로에 공백이 포함되어 있으면 오류가 날 수 있습니다.