자율 학습/학습

[Linux] vi readonly 파일 변경 강제 저장 실패 - sudo 사용자 권한으로 저장하기

2023. 1. 31. 16:39

현재 사용자의 소유가 아닌 파일은 readonly 모드가 설정되어 있다.

 

1. 저장 실패 

:wq

E505: ~ is read-only (add ! to override)

 

 

2. 강제 저장 실패

:wq!

E212: Can't open file for writing

 

 

3. vim에서 super user 권한으로 파일 저장하는 방법

강제 저장도 실패했을 때,

해당 메시지 보면 권한 문제로 보인다.

 

:w !sudo tee % > /dev/null
:w !어쩌구 현재 연 파일을 어쩌구의 stdin으로 적는다 (write)
stdin 표준 입력 (standard input)
tee 표준 입력에서 읽어서 표준 출력과 파일에 쓰는 명령어
tee % %는 현재 연 파일
sudo tee FILENAME tee의 stdin에 들어오는 content를 FILENAME으로 적는다
:w !sudo tee % 즉, 타겟파일 → tee stdin → 타겟파일 구조
>/dev/null tee의 stdout을 무시 (vim에서 사용자가 stdout을 볼 필요 없으므로)

 

 

이렇게 하면 저장 잘 되었으니 :q! 엔터로 나가면 된다!

 

다시 들어가면 변경된 부분이 잘 적용되어 있는 것을 볼 수 있다.

 

 

 

참고

https://redstarhong.tistory.com/68