파일에 주소 정보를 추가하려고 합니다. 오류 메시지가 나타납니다.
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.txt
OR_595.txt
루트 디렉터리에 있는 파일을 가리킵니다 /
. 파일이 존재하지 않을 수 있습니다. 일반 사용자는 접속할 수 없습니다 /
.
쓰기 가능한 파일을 가리키도록 outputdir
정의 하십시오 . 이것이 ${outputdir}/${state}_595.txt
당신이 사용한 것입니다.tee -a
아마도디자인 파일이 이미 존재합니다. 나추측하다첫 번째 스니펫은 파일을 생성해야 합니다. 를 사용하므로 두 번째 조각에서 적절하게 설정 ./$2/$i/
해야 합니다 .outputdir