저는 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