저는 Linux 명령을 사용하여 로컬 서버에 파일이 있는지 확인하는 프로그램을 작성하고 있습니다.
프로그램은 제공된 인수를 사용하여 명령을 실행합니다.
ls *ARG_GOES_HERE* &> /dev/null
그런 다음 상태를 확인하여 파일을 찾을 수 있는지 확인하세요.
문제는 때때로 파일이 이와 같은 직접 경로가 아니라는 것입니다.
/var/www/html/images/myImage.jpg
때때로 이미지 위치는 네트워크 위치를 사용하여 저장됩니다.
http://192.168.1.2/images/myImage.jpg
리눅스 명령에 실패했습니다.
bash를 사용하여 로컬 아파치 위치에 이미지가 있는지 확인할 수 있습니까?
답변1
당신은 그것을 사용할 수 있습니다curl
이 명령은 파일이 존재하고 HTTP를 통해 액세스할 수 있는지 확인합니다. 다음과 같은 것이 당신에게 도움이 될 것입니다:
path_to_file=images/myImage.jpg
if curl --head --location --silent --fail "http://192.168.1.2/$path_to_file" > /dev/null
then
printf "%s exists\n" "$path_to_file"
else
printf "%s does not exist\n" "$path_to_file"
fi
curl
다음 옵션을 사용하세요.
--head
– HTTP 헤더만 가져오기(본문은 필요하지 않음)--location
– HTTP 리디렉션을 따릅니다.--silent
– 진행률 표시기 또는 오류 메시지가 표시되지 않습니다.--fail
–curl
HTTP 요청이 실패하면 명령은 오류 상태로 실패합니다. 예를 들어 웹 서버가 404로 응답하면 명령은curl
0(성공) 대신 상태 22(오류)로 종료됩니다.