이 기사에서는 파일이 존재하는지 확인하는 bash 스크립트를 작성합니다.
구문:
- 테스트 [표현]
- [ 표현 ]
- [[ 표현 ]]
여기서는 표현으로 다음과 같이 씁니다. 매개변수 그리고 파일 이름 . 표현식에 사용할 수 있는 몇 가지 매개변수를 살펴보겠습니다. –
- – 에프: 파일이 공통(일반) 파일로 존재하면 True를 반환합니다. -d : 디렉토리가 존재하면 True를 반환합니다. -e : 어떤 유형의 파일이라도 존재하면 True를 반환합니다. -c : 캐릭터 파일이 존재하면 True를 반환합니다. -r : 읽을 수 있는 파일이 있으면 True를 반환합니다.
- – ~ 안에 : 쓰기 가능한 파일이 있으면 True를 반환합니다. . -x : 실행 파일이 있으면 True를 반환합니다. -p : 파일이 파이프로 존재하면 True를 반환합니다. -S : 파일이 소켓으로 존재하면 True를 반환합니다. -s : 파일이 존재하고 파일 크기가 0이 아니면 True를 반환합니다. -L : 심볼릭 링크 파일이 존재하면 True를 반환합니다. . -g : 파일이 존재하고 그룹 ID 설정 플래그가 설정된 경우 True를 반환합니다. -G : 나 파일이 존재하고 처리 중인 동일한 그룹 ID를 보유하는 경우 t는 True를 반환합니다. -k : 파일이 존재하고 고정 비트 플래그가 설정된 경우 True를 반환합니다.
이제 두 파일 간의 비교를 위한 몇 가지 매개변수가 더 있습니다.
- -ef: 두 파일이 모두 존재하고 동일한 파일을 나타내는 경우 True를 반환합니다.
예 :
FirstFile -ef SecondFile>
- -nt: FirstFile이 Secondfile보다 최신이면 True를 반환합니다.
예 :
string.compareto C#
FirstFile -nt FileOld>
- -ot: FirstFile이 SecondFile보다 오래된 경우 True를 반환합니다.
예:
FirstFile -ot SecondFile>
구문을 기반으로 몇 가지 예를 들어보겠습니다.
- [ 표현식 ]: 먼저 FirstFile.sh라는 파일을 만들고 여기에 다음 스크립트를 작성합니다.
#!/bin/bash # using [ expression ] syntax and in place # of File.txt you can write your file name if [ -f 'File.txt' ]; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
이제 다음 명령을 사용하여 파일을 저장하고 실행하십시오.
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
출력 :

산출
메모: File.txt가 시스템에 존재하기 때문입니다. 그래서 File is presents 가 인쇄되었습니다.
- 테스트 [표현식]: 이제 FirstFile.sh에서 위 스크립트를 다음과 같이 수정합니다.
#!/bin/bash # using test expression syntax and in place # of File2.txt you can write your file name if test -f 'File2.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
이제 다음 명령을 사용하여 파일을 다시 저장하고 실행하십시오.
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
출력 :

산출
메모: File2.txt가 시스템에 존재하지 않기 때문입니다. 그래서 File is not 존재하지 않는다고 인쇄되었습니다.
- [[ 표현식 ]]: FirstFile.sh에서 위 스크립트를 다음과 같이 다시 수정합니다.
#!/bin/bash # using [[ expression ]] syntax and in place # of File3.txt you can write your file name if test -f 'File3.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
이제 다음 명령을 사용하여 파일을 다시 저장하고 실행하십시오.
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
출력 :

산출
메모: File3.txt가 시스템에 존재하기 때문입니다. 그래서 File is Exige 가 인쇄되었습니다.
자바의 디자인 패턴
매개변수를 기반으로 한 예를 살펴보겠습니다.
- -d 매개변수 사용: FirstDir.sh라는 파일을 생성합니다. 그리고 그 안에 다음 스크립트를 작성하세요
!/bin/bash if [[ -d 'GFG_dir' ]] ; # Here GFG_dir is directory and in place of GFG_dir you can write your Directory name then echo 'Directory is exist' # If GFG_dir exist then it will be printed else echo 'Directory is not exist' # If GFG_dir is not exist then it will be printed fi>
이제 다음 명령을 사용하여 파일을 저장하고 실행하십시오.
유튜브를 다운로드하려면 VLC
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
출력 :

산출
메모: GFG_dir이 시스템에 존재하기 때문입니다. 그래서 Directory가 존재한다고 인쇄되었습니다.
마찬가지로 다음을 사용할 수 있습니다. -에프 , -그것은 , -안에 , -아르 자형 , -씨 ,등. (그들의 용도에 따라) 대신 -디 다양한 유형의 파일이 있는지 확인합니다.
두 파일을 비교한 예를 살펴보겠습니다.
- 사용 -nt 매개변수
Comparison_File.sh라는 파일 이름을 만들고 다음 스크립트를 작성합니다.
#!/bin/bash # New_file.txt and Old_File.txt are names of two files. if [[ 'New_File.txt' -nt 'Old_File.txt' ]] ; then # This will be printed if Condition is true echo 'New_File.txt is newer than Old_File.txt' else # This will be printed if Condition is False echo 'New_File.txt is not newer than Old_File.txt' fi>
이제 다음 명령을 사용하여 파일을 저장하고 실행하십시오.
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
출력 :

산출
메모: 두 파일이 모두 시스템에 존재하고 New_File.txt가 Old_File.txt보다 최신이므로
파일이 존재하지 않는지 확인하는 예제를 살펴보겠습니다.
Check_Exist.sh라는 파일을 생성합니다. 그리고 그 안에 다음 스크립트를 작성하세요
#!/bin/bash # using ! before -f parameter to check if # file does not exist if [[ ! -f 'GFG.txt' ]] ; then # This will printed if condition is True echo 'File is not exist' else # This will be printed if condition is False echo 'File is exist' fi>
이제 다음 명령을 사용하여 파일을 저장하고 실행하십시오.
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
출력 :

산출
메모: GFG.txt가 시스템에 없습니다. 따라서 파일이 존재하지 않는다고 인쇄됩니다.
If-else 조건을 사용하지 않은 예를 살펴보겠습니다.
Geeks_File.sh라는 파일을 만들고 그 안에 다음 스크립트를 작성합니다.
#!/bin/bash # If File exist then first statement will be # printed and if it is not exist then 2nd # statement will be printed. [ -f 'GFG_File.txt' ] && echo 'File is exist' || echo 'File is not exist'>
이제 다음 명령을 사용하여 파일을 저장하고 실행하십시오.
런타임 에러
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
출력 :

산출
메모: GFG_File.txt가 시스템에 존재하기 때문입니다. 그래서 File is Exige 가 인쇄되었습니다.