머리말
유닉스 계열 시스템의 Bash 환경에서 파일이 존재하는지 어떻게 확인하는가? 수요가 있기 때문에 물론 해결책도 있습니다. 셸의 테스트 명령을 사용하여 파일 유형을 감지하거나 값이 동일한지 비교하는 데에도 사용할 수 있습니다. 존재합니다.
다음 명령을 사용하여 확인할 수 있습니다.
test -e filename [ -e filename ] test -f filename [ -f filename ]
다음 명령은 Shell의 조건식을 사용하여 etc/ 호스트 파일이 존재합니다:
[ -f /etc/hosts ] && echo "Found" || echo "Not found"
이 결합된 명령은 다음을 출력합니다:
Found
더 일반적인 사용법은 if..else..fi 조건판단의 조건식에 테스트 명령어를 넣은 후, 그 안에 다른 분기 로직을 작성하는 것입니다
#!/bin/bash file="/etc/hosts" if [ -f "$file" ] then echo "$file found." else echo "$file not found." fi
파일 속성 감지를 위한 관련 연산자
파일이 존재하고 해당 속성이 있는 경우 다음 연산자는 true를 반환합니다.
-b FILE FILE exists and is block special -c FILE FILE exists and is character special -d FILE FILE exists and is a directory -e FILE FILE exists -f FILE FILE exists and is a regular file -g FILE FILE exists and is set-group-ID -G FILE FILE exists and is owned by the effective group ID -h FILE FILE exists and is a symbolic link (same as -L) -k FILE FILE exists and has its sticky bit set -L FILE FILE exists and is a symbolic link (same as -h) -O FILE FILE exists and is owned by the effective user ID -p FILE FILE exists and is a named pipe -r FILE FILE exists and read permission is granted -s FILE FILE exists and has a size greater than zero -S FILE FILE exists and is a socket -t FD file descriptor FD is opened on a terminal -u FILE FILE exists and its set-user-ID bit is set -w FILE FILE exists and write permission is granted -x FILE FILE exists and execute (or search) permission is granted
위 명령은 man test에서 복사한 것입니다.
위 기호를 사용하는 방법은 완전히 동일합니다:
if [ operator FileName ] then echo "FileName - Found, take some action here" else echo "FileName - Not found, take some action here" fi
요약
위는 이 글의 전체 내용입니다. 이 글의 내용이 모든 분들의 공부나 업무에 조금이나마 도움이 되기를 바랍니다. 궁금한 점이 있으시면 메시지를 남겨주세요.
Bash Shell을 사용하여 파일 존재 여부를 확인하는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!