파일 압축을 풀기 위한 Bash 스크립트 -- 오류: 찾거나 열 수 없습니다.

파일 압축을 풀기 위한 Bash 스크립트 -- 오류: 찾거나 열 수 없습니다.

이것은 내 스크립트입니다.

Z=/var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip
if [ $Z ]; then
    echo "$Z exists"
    unzip $Z -d test
else
   echo "$Z doesn't exist!"
fi

스크립트를 실행하면 다음과 같은 결과가 나타납니다.

/var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip exists
unzip:  cannot find or open
/var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip, /var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip.zip or /var/pixel/sftp/gisftp/pixel_images/pixel_images_archive.zip.ZIP.

어떻게 존재하면서도 동시에 존재하지 않을 수 있습니까? ?

이 문제를 어떻게 해결해야 합니까?

답변1

[ $Z ]문자열이 비어 있지 않은지( [ -n "$Z" ]바람직함)만 테스트하고 문자열로 명명된 파일이 존재하는지 테스트하지 마세요. 이를 위해 사용됩니다 [ -e "$Z" ]. 매뉴얼 페이지를 참조하세요test또는 쉘에 대한 문서( [내장 쉘일 수 있음).

test(의 전체 이름 )을 사용하면 파일이 존재하고 비어 있지 않은지( ) 또는 존재하고 일반 파일인지( ) 등을 [확인할 수 있습니다 .test -s "$Z"test -f "$Z"

관련 정보