Linux 환경에서는 파일을 쓸 수 없습니다

Linux 환경에서는 파일을 쓸 수 없습니다

저는 GCP Linux 가상 머신을 사용하고 있으며 파일을 실행하고 결과를 새 파일에 쓰려고 합니다. 코드는 다음과 같습니다.

./segment.sh inputfile.txt > outputfile.txt

하지만 이렇게 하면 내가 받는 메시지는 다음과 같습니다.permission denied for outputfile.txt

나도 시도했다

sudo sh -c ./segment.sh inputfile.txt > outputfile.txt

하지만 같은 메시지를 받았습니다permission denied for outputfile.txt

결과를 어떻게 쓸 수 있나요 outputfile.txt? outputfile.txt위 작업을 수행하기 전에 빈 파일을 만들어야 합니까?

답변1

제공된 정보에 따르면 문제는 현재 디렉터리에 대한 쓰기 권한이 없는 것 같습니다. 이 답변은 특정 디렉터리에서 스크립트를 실행해야 하며 권한 등이 "올바른" 것으로 가정합니다.

당신과 당신은... 꽤 가까워요 sudo sh. 이게 효과가 있을 거라고 생각했어요. 스크립트는 root원하는 대로 실행되지 않을 수 있습니다.

sudo sh -c './segment.sh inputfile.txt > outputfile.txt'

이 대안을 사용하면 스크립트를 "사용자"로 실행하고 sudo파일에 쓰기 위해서만 호출할 수 있습니다.

./segment.sh inputfile.txt | sudo tee outputfile.txt >/dev/null

sudo비밀번호 프롬프트 문제가 발생하면 다음을 시도해 볼 수 있습니다.

sudo : && ./segment.sh inputfile.txt | sudo tee outputfile.txt >/dev/null

관련 정보