대부분 파일이 있는지 여부를 확인하는 작업을 수행해야하는 상황을 찾을 수 있습니다.
Bash에서는 “test command”를 사용하여 파일이 있는지 확인하고 파일 유형을 확인할 수 있습니다.
다음은 테스트 명령의 구문입니다. 다음 명령 중 하나를 사용할 수 있습니다.
모든 POSIX 셸에 대해 스크립트를 이식 할 수 있도록하려면 단일 대괄호 “[“명령을 사용해야합니다. 업그레이드 된 버전의 테스트 명령에는 Bash, Zsh 및 Ksh를 기본 쉘로 사용하는 대부분의 최신 시스템에서 지원되는 이중 대괄호 “[[“가 포함되어 있습니다.
파일이 있는지 확인
파일이 있는지 확인하는 동안 가장 일반적으로 사용되는 파일 연산자는 -e 및 -f입니다. “-e”옵션은 유형에 관계없이 파일의 존재 여부를 확인하는 데 사용되며 “-f”옵션은 파일이 일반 파일 (디렉터리 나 장치가 아님) 인 경우에만 true 값을 반환하는 데 사용됩니다. / p>
파일이 존재하는지 여부를 확인하는 가장 일반적인 옵션은 “if 조건문”과 함께 테스트 명령을 사용하는 것입니다.
다음은 “read_file. txt “파일이 있습니다.
방법 1
방법 2
방법 3
출력
디렉토리에 파일 (read_file.txt)이 있으므로 세 가지 방법 모두에 대한 출력은 다음과 같습니다.
read_file.txt exist
파일이 존재하는지 여부에 따라 결과를 제공하는 작업을 수행하려면 if / then 구문을 다음과 같은 방법으로 :
예
출력
read_file.txt exist
if 문없이 test 명령을 사용할 수도 있습니다. 다음 방법 중 하나를 사용할 수 있습니다.
방법 1
방법 2
방법 3
출력
디렉토리에 파일 (read_file.txt)이 있으므로 세 가지 방법 모두에 대한 출력은 다음과 같습니다.
read_file.txt exist
예
다름 & &, || 연산자는 테스트 명령의 종료 상태가 “false”인 경우에만 실행됩니다.
예
출력
read_file.txt exist
파일의 존재 여부를 확인하기 위해 Bash에서 일반적으로 사용되는 방법입니다.
디렉토리가 있는지 확인
연산자 “-d”를 사용하면 파일이 디렉토리인지 여부를 테스트 할 수 있습니다.
다음은 “Javatpoint”디렉토리가 있는지 확인하는 방법입니다.
방법 1
방법 2
참고 : 단일 대괄호 “[“대신 이중 대괄호 “[[“를 사용할 수도 있습니다. .
출력
지정된 위치에 디렉토리 (Javatpoint라는 이름)가 있으므로 위의 두 메소드에 대한 출력은 다음과 같습니다.
Javatpoint is a directory
파일이 없는지 확인
느낌표 (!-논리적 NOT 연산자)를 사용하여 테스트 표현식을 부정 할 수 있습니다. 다음 예를 확인하세요.
예
위 스크립트는 다음과 같이 작성할 수도 있습니다.
출력
missing_read_file.txt unavailable
파일 테스트 연산자
테스트 명령에는 다음과 같은 파일 연산자가 포함되어 있습니다. 특정 유형의 파일에 대한 테스트 :
-b FileReturns | “True”(FILE이 특수 블록으로 존재하는 경우) 파일. |
-c FileReturns | FILE이 특수 문자 파일로 존재하는 경우 “True”. |
-d FileReturns | 파일이 디렉토리로 존재하는 경우 “True”. |
-e FileReturns | “True “유형 (노드, 디렉토리, 소켓 등)에 관계없이 FILE이 파일로 존재하는 경우. |
-f FileReturns | “True ” FILE이 일반 파일 (디렉토리 또는 장치 아님)로 존재하는 경우. |
-G FileReturns | FILE이 존재하고 다음을 포함하는 경우 “True” 사용자가 통신을 실행하는 것과 동일한 그룹 그리고. |
-h FileReturns | FILE이 심볼릭 링크로 존재하는 경우 “True”. |
-g FileReturns | 파일이 존재하고 set-group-id (sgid) 플래그 세트를 포함하는 경우 “True”. |
-k FileReturns | 파일이 존재하고 고정 비트 플래그 세트를 포함하는 경우 “True”. |
-L FileReturns | FILE은 심볼릭 링크로 존재합니다. |
-O FileReturns | FILE이 존재하고 명령을 실행중인 사용자가 소유하고있는 경우 “True”. |
-p FileReturns | 파일이 파이프로 존재하는 경우 “참”. |
– r FileReturns | 파일이 읽을 수있는 파일로 존재하면 “True”를 반환합니다. |
-S FileReturns | “True”를 반환합니다. FILE은 소켓으로 존재합니다. |
-s FileReturns | 파일이 존재하고 크기가 0이 아닌 경우 “참”을 반환합니다. |
-u FileReturns | FILE이 존재하고 set-user-id (suid) 플래그가 설정된 경우 “True”를 반환합니다. |
-w FileReturns | 파일이 쓰기 가능한 파일로 존재하면 “True”. |
-x FileReturns | FILE이 쓰기 가능한 파일로 존재하면 “True” 실행 파일. |