이번 포스팅에서는 리눅스에서 쉘 스크립트(Shell Script)를 작성할 때,
파일 존재 여부를 확인하는 방법에 대해 알아보자!
1. 파일이 존재하는 경우
아래 스크립트처럼 if 문 안에 '-e' 라는 옵션을 넣어서 '해당 파일이 존재한다면~' 을 표현한다!
#! /bin/bash
FILE = "/home/junho/test.txt"
if [ -e $FILE ]; then
echo "File Exists."
fi
2. 파일이 존재하지 않는 경우
파일이 존재하지 않는 경우는 간단하게 if 문에서 부정을 뜻하는 '!' 를 넣으면 된다!
이렇게 하면 '해당 파일이 존재하지 않는다면~' 을 의미한다.
이때 쉘 스크립트에서 if 문을 작성할 때의 원칙인, 괄호 옆에 한 칸을 띄우는 것을 if 부정문을 사용할 때에도 똑같이 적용된다는 것을 잊지 말자!
#! /bin/bash
FILE = "/home/junho/test.txt"
if [ ! -e $FILE ]; then
echo "File Doesn't Exists."
fi
'-e' 외에도, 아래의 다양한 파일 비교 operator 들을 참고하자!
Operator | Discription (아래 설명과 일치하면 참) |
-e | 해당 파일이 존재한다. |
-f | 해당 파일이 존재하고 일반 파일이다.(디렉토리 X, 장치파일 X) |
-s | 해당 파일이 존재하고, 파일 크기가 0보다 크다. |
-d | 해당 파일이 존재하고, 디렉토리이다. |
-b | 해당 파일이 존재하고, 블록장치 파일이다. |
-c | 해당 파일이 존재하고, 캐릭터 장치 파일이다. |
-p | 해당 파일이 존재하고, FIFO(Named Pipe) 이다. |
-h / -L | 해당 파일이 존재하고, 한 개 이상의 심볼릭 링크가 설정되어 있다. |
-S | 해당 파일이 존재하고, 소켓 디바이스이다. |
-t | 해당 파일이 존재하고, 디스크립터가 터미널 디바이스와 연관되어 있다. |
-r | 해당 파일이 존재하고, 읽기가 가능하다. |
-w | 해당 파일이 존재하고, 쓰기가 가능하다. |
-x | 해당 파일이 존재하고, 실행이 가능하다. |
-g | 해당 파일이 존재하고, SetGID가 설정되어 있다. (파일 그룹 실행권한에 s가 있다.) |
-u | 해당 파일이 존재하고, SetUID가 설정되어 있다. |
-k | 해당 파일이 존재하고, Sticky Bit가 설정되어 있다. |
-O | 해당 파일의 소유자가 현재 사용자이다. |
-G | 해당 파일의 그룹이 현재 사용자 그룹이다. |
filename1 -nt filename2 | filename1 이 filename2 보다 새로운 파일이다. (Newer Than) |
filename1 -ot filename2 | filename1 이 filename2 보다 오래된 파일이다. (Older Than) |
filename1 -ef filename2 | filename1 과 filename2 가 같은 파일이다. |
참고
https://ponyozzang.tistory.com/645
https://blog.gaerae.com/2015/01/bash-hello-world.html
https://eotrade.tistory.com/1121
'OS > Linux' 카테고리의 다른 글
[Linux][CentOS 7] vi, vim 테마(colorscheme) 설정 - onehalf (0) | 2023.03.08 |
---|---|
[Linux] CentOS 7 에서 User 생성(useradd)과 User 홈 디렉토리 설정 (0) | 2023.02.28 |
[Linux][쉘스크립트] '$' 의 활용 (1) | 2022.08.23 |
정규표현식(Regex)의 개념과 기초 문법 (0) | 2022.08.23 |
[Linux] ps 결과 항목 설명 및 유용한 ps 예제 (0) | 2022.03.25 |
최근댓글