tee:/OR_595.txt: 권한이 거부되었습니다.

tee:/OR_595.txt: 권한이 거부되었습니다.

파일에 주소 정보를 추가하려고 합니다. 오류 메시지가 나타납니다.

tee:/OR_595.txt: 권한이 거부되었습니다.

다음 코드를 사용하여 파일을 만듭니다.

cstates=($(awk -v FS=^ '{print $5}' "$1"))

for i in "${cstates[@]}"
do

    :

if [[ ! -f "./$2/$i/${i}_595.txt" ]]; then

    echo "Making ${i}_595.txt File"
    touch "./$2/$i/${i}_595.txt"
    chmod a+x "./$2/$i/${i}_595.txt"
    else echo "File ${i}_595.txt already exists"


fi
done

이 코드는 파일에 쓰고 있습니다.

file_name="$1"

while IFS=^ read -r company_name address1 address2 city state zip phone
do

printf "Company Name: %s\nCompany Address: %s%s, %s, %s, %s\nCompany Phone Number: %s\n\n" \
      "${company_name}" "${address1}" "${address2}" "${city}" "${state}" "${zip}" "${phone}" | tee -a "${outputdir}/${state}_595.txt" > /dev/null

done < $file_name

모든 폴더, 하위 폴더 및 파일에 대한 권한을 확인했습니다.

drwxrwxr-x 56 jh78454 jh78454 4096 Feb 19 14:58 States
drwxrwxr-x 2 jh78454 jh78454 4096 Feb 19 15:14 WA
-rwxrwxr-x 1 jh78454 jh78454 0 Feb 19 15:14 WA_595.txt

WinSCP를 통해 여러 폴더와 파일의 권한을 확인했는데 모두 동일합니다. 왜 권한 거부 오류가 발생하는지 잘 모르겠습니다.

답변1

왜 권한 거부 오류가 발생하는지 잘 모르겠습니다.

분명히 ${outputdir}빈 문자열(변수가 정의되지 않았거나 비어 있음) 로 ${state}확장 되고 OR.${outputdir}/${state}_595.txt/OR_595.txt

/OR_595.txtOR_595.txt루트 디렉터리에 있는 파일을 가리킵니다 /. 파일이 존재하지 않을 수 있습니다. 일반 사용자는 접속할 수 없습니다 /.

쓰기 가능한 파일을 가리키도록 outputdir정의 하십시오 . 이것이 ${outputdir}/${state}_595.txt당신이 사용한 것입니다.tee -a아마도디자인 파일이 이미 존재합니다. 나추측하다첫 번째 스니펫은 파일을 생성해야 합니다. 를 사용하므로 두 번째 조각에서 적절하게 설정 ./$2/$i/해야 합니다 .outputdir

관련 정보