Vi 에디터로 파일을 편집한 후 :wq 명령어로 저장하려 할 때 다음과 같은 오류 메시지가 나타날 수 있습니다:
E45: 'readonly' option is set (add ! to override)
또는
"filename" E212: Can't open file for writing
이는 파일이 읽기 전용(read-only)이거나, 현재 사용자가 해당 파일을 수정할 권한이 없을 때 발생합니다. 이 문서에서는 이러한 문제를 해결하는 방법에 대해 알아보겠습니다.
파일이 읽기 전용일 경우, :wq 대신 :w! 명령어를 사용하여 강제로 저장할 수 있습니다.
:w! : 강제로 저장하기:wq! : 강제로 저장하고 Vi 에디터 종료하기느낌표
!는 강제 옵션으로, 읽기 전용 문서도 강제로 저장할 수 있게 해줍니다.
파일을 편집한 후 저장하려 할 때 오류가 발생하면:
:w
오류 메시지:
E45: 'readonly' option is set (add ! to override)
강제로 저장하기 위해 느낌표를 추가합니다:
:w!
저장 후 에디터를 종료하려면:
:q
또는 한 번에 저장하고 종료하려면:
:wq!
시스템의 중요한 파일을 일반 사용자 권한으로 수정하려 할 때 다음과 같은 경고가 나타나며 저장이 되지 않을 수 있습니다:
"filename" E212: Can't open file for writing
또는
"filename" E45: 'readonly' option is set (add ! to override)
이 경우, :w!를 사용해도 저장되지 않습니다. 이는 현재 사용자가 해당 파일을 수정할 권한이 없기 때문입니다.
sudo를 사용하여 Vi 에디터 실행하기파일을 수정할 수 있는 권한을 가진 사용자(예: root)로 Vi 에디터를 실행하면 문제를 해결할 수 있습니다.
sudo vi 명령어 사용터미널에서 파일을 열 때 vi 앞에 sudo를 붙여서 실행합니다:
sudo vi filename
sudo는 명령어를 관리자 권한으로 실행하도록 합니다.:wq).sudo 권한으로 저장하기이미 Vi 에디터에서 파일을 편집하고 있는 상태라면, 다음 명령어를 사용하여 관리자 권한으로 저장할 수 있습니다:
:w !sudo tee % > /dev/null
:w !sudo tee %는 현재 파일을 sudo 권한으로 저장합니다.참고:
> /dev/null을 추가하면tee명령어의 출력을 숨길 수 있습니다.
sudo를 사용할 때는 주의해야 합니다. 시스템 파일을 잘못 수정하면 시스템에 문제가 발생할 수 있습니다.:w! 또는 :wq! 명령어를 사용합니다.sudo vi filename으로 파일을 열거나,:w !sudo tee % > /dev/null 명령어를 사용하여 관리자 권한으로 저장합니다.파일 권한 확인하기:
ls -l filename
파일 권한 변경하기 (신중하게 사용):
sudo chown user:group filename
sudo chmod u+w filename
Vi 에디터에서 현재 사용자의 권한 확인:
:!whoami
이러한 방법들을 통해 Vi 에디터에서 발생하는 읽기 전용 파일 저장 및 권한 문제를 해결할 수 있습니다.