
루트로 파일을 종료할 때 다음을 입력 :x!~
하고 Enter를 눌렀습니다. 이제 다음이 있습니다.
root@host:/etc/shinken/services$ ll
total 64K
-rw-r--r-- 1 0 0 515 Sep 1 18:24 ~
drwxr-xr-x 2 10003 10003 4.0K Sep 1 18:24 .
drwxr-xr-x 29 10003 10003 4.0K Aug 8 17:11 ..
<other files omitted>
그렇다면 cd ~
내가 /root
원하는 결과를 얻을 수 있을 것이다. ~
실수로 내 것을 삭제하지 않고 새 항목을 삭제하는 방법실제집?
답변1
cd /etc/shinken/services
rm ./~
이것에 대해서는 별로 할 말이 없습니다. ./
이전에 지정 하면 ~
쉘이 물결표 확장을 수행하고 이를 현재 디렉토리의 파일 이름으로 처리하는 것을 방지할 수 있습니다.
또 다른 옵션은
cd /etc/shinken/services
rm '~'
그렇지 않으면
rm /etc/shinken/services/~
Vi와 Vim에서는 종료하기 전에 파일에 쓰는 것처럼 작동 :x
합니다 . :wq
파일 이름( ~
이 경우)을 추가하면 해당 이름의 파일이 작성됩니다. 이 두 명령의 차이점은 :x
마지막 저장 이후 현재 버퍼가 수정된 경우에만 파일이 기록된다는 것입니다. 덮어쓰기는 !
읽기 전용 파일에 씁니다.
답변2
rm -- '~'
주변의 작은따옴표는 ~
bash가 경로를 확장하고 단순히 rm
.
--
rm이 추가 인수를 플래그로 해석하고 해당 인수가 모두 파일이라고 가정하는 것을 방지합니다(이 경우에는 그다지 중요하지 않지만 앞쪽 가장자리가 있는 파일이 있는 경우 유용합니다 -
).
ls
먼저 테스트 해 볼 수 있습니다 .
ls -- '~'
예를 들어, 리터럴 "~"를 포함하지 않는 디렉토리에서는 다음을 얻게 됩니다.
ls: cannot access '~': No such file or directory
ls
경로가 수정되지 않은 상태 로 수신되었음을 표시합니다 .