Bash shell의 File 테스트 연산자를 소개합니다.
다음과 같은 연산자를 이용하여 파일이 존재하는지, 파일이 디렉토리인지 등을 확인할 수 있습니다.
File test operation | Description |
---|---|
-e | file exists |
-a | file exists (deprecated) |
-f | file is a regular file (not a directory or device file) |
-s | file is not zero size |
-d | file is a directory |
-b | file is a block device |
-c | file is a character device |
-p | file is a pipe |
-h | file is a symbolic link |
-L | file is a symbolic link |
-S | file is a socket |
-t | file (descriptor) is associated with a terminal device |
-r | file has read permission (for the user running the test) |
-w | file has write permission (for the user running the test) |
-x | file has execute permission (for the user running the test) |
-g | set-group-id (sgid) flag set on file or directory |
-u | set-user-id (suid) flag set on file |
-k | sticky bit set |
-O | you are owner of file |
-G | group-id of file same as yours |
-N | file modified since it was last read |
f1 -nt f2 | file f1 is newer than f2 |
f1 -ot f2 | file f1 is older than f2 |
f1 -ef f2 | files f1 and f2 are hard links to the same file |
! | "not" -- reverses the sense of the tests above (returns true if condition absent) |
Example 1
파일이 존재하는지 확인하는 예제입니다. 파일 경로는 절대경로나 상대경로를 입력할 수 있습니다.
#!/bin/bash
SAMPLE_FILE="./example.sh"
if [ -e "$SAMPLE_FILE" ]
then
echo "Sample file exists"
fi
Output:
$ bash example.sh
Sample file exists
Example 2
디렉토리가 아닌, 단순한 파일이 존재하는지 확인하는 것이라면 -f
를 사용하여 체크할 수도 있습니다.
#!/bin/bash
SAMPLE_FILE="./example.sh"
if [ -f "$SAMPLE_FILE" ]
then
echo "Sample file exists"
fi
Output:
$ bash example.sh
Sample file exists
Example 3
파일이 존재하지 않는지 확인할 때는 연산자 앞에 not(!)
을 추가해주시면 됩니다.
#!/bin/bash
SAMPLE_FILE="./example1.sh"
if [ ! -f "$SAMPLE_FILE" ]
then
echo "Sample file doesn't exists"
fi
Output:
$ bash example.sh
Sample file doesn't exists
Loading script...
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)