작업 Unix 디렉토리 내부의 물결표(~)

작업 Unix 디렉토리 내부의 물결표(~)

저는 UNIX 환경에서 일하고 있는데 UNIX 홈에서 수 마일 떨어진 작업 디렉토리에 ~.

예전에 rm -rf ~작업 디렉터리에서 작업을 수행했는데 결국 홈 디렉터리가 완전히 지워져서 IT가 개입해야 했던 적이 있습니다.

나는 그것을 다시하고 싶지 않습니다. 동시에 나는 다음 사항을 알고 싶습니다.

  1. ~내 작업 디렉터리에 왜 생성되나요 ? 저장 중 잘못된 손가락 미끄러짐인가( :w!그런데 무슨 일이 일어나는 걸까요 :w~?!!)

  2. 체크인하기 전에 p4가 인식하지 못하는 추가 파일이나 폴더를 찾는 스크립트가 있으므로 이로 인해 ~문제가 발생할 수 있습니다. ~내 작업 디렉토리에서 을(를) 제거하는 동시에 집을 지우지 않으려면 어떻게 해야 합니까 ?

del. 대신 사용하는 백업 명령이 있습니다 rm -rf. 단지 임시 위치에 물건을 배치하는 것뿐입니다. 이를 사용하여 을 제거할 수 있지만 ~, 왜 이런 일이 발생하는지, 어떻게 제거할 수 있는지에 더 관심이 있습니다.

답변1

다음 중 하나를 인용해 보세요.

rm -i '~'
rm -i "~"
rm -i \~

또는 기본 이름 대신 경로로 참조하십시오.

rm -i ./~
rm -i /path/to/~

SOME$PATH재미있어 보이는 단일 문자 이름임에도 불구하고 이는 다음 을 수행하여 이름이 지정된 파일을 만든 경우와 개념적으로 다르지 않습니다.

touch 'SOME$PATH'

그리고 다음을 수행하여 제거하려고했습니다.

rm -i SOME$PATH

(경고: 변수 SOME$PATH 여기에 있는 예를 위해 인용되지 않았습니다. 일반적으로 따옴표로 묶입니다. 'SOME$PATH' )

두 경우 모두 쉘은 사용자가 지정한 이름을 확장하므로 이를 방지해야 합니다.

rm -rf또한: 파일을 제거하는 데 사용하지 마십시오 ! 전체 목적은 디렉토리를 제거해도 괜찮다는 것을 rm -r알려주는 것입니다 . rm파일을 제거하는 동안 실수로 전체 디렉토리를 제거하고 싶지 않다면 습관적으로 -r!

답변2

~와 같은 맥락에서 물결표만 단독으로 사용하면 ls ~홈 디렉토리가 나열됩니다. 이는 홈 디렉토리에 대한 바로가기입니다. 그렇게 했다면 ls ~brown브라운의 홈 디렉토리 내용을 나열하게 됩니다.

VIM은 달리 명시하지 않는 한 변경된 파일의 백업 복사본을 생성합니다: myFile myFile~.

이 동작은 백업을 생성하므로 좋지만 원하지 않는 경우 .vimrc 파일에 추가하십시오. 백업을 설정하지 마십시오(방금 으로 액세스함 vi ~/.vimrc).

물론 다른 사람들이 말했듯이 ~라는 파일이 있으면 간단히 \~로 문자를 이스케이프 처리하세요.

me 217 % vi this      (saved as :w~)
me 218 % ls
this  ~
me 219 % cat \~
kfdkdfk
me 220 % \rm \~
me 221 % ls
this

답변3

이는 잘못된 유형으로 인해 발생할 수 있습니다. TERM=xterm구성이 나와 비슷하다면 키보드의 거의 모든 기능 키가 다음과 같은 이스케이프 시퀀스를 보냅니다 .

infocmp -1 | grep -n \~ | tail -n3
138:    kich1=\E[2~,
141:    knp=\E[6~,
142:    kpp=\E[5~,

출력의 절반 이상이 다음을 infocmp -1포함합니다 .~틸데내 컴퓨터에서 탈출합니다. 그리고 나는 그들 대부분이 무엇을 하는지 이해하기 어렵습니다. 나는 zsh적어도 대부분의 경우 문자열에서 탈출된 부분을 실제로 먹는다는 것을 알고 있습니다 .~틸데.

예를 들어, echo다음을 입력하세요.<space>그때 F6그리고<return>인쇄물...

/home/mikeserv

전송된 실제 이스케이프 시퀀스는 다음과 같습니다.

kf6=\E[17~

흥미롭게도 문자를 포함하는 다른 이스케이프 시퀀스가 ​​있습니다 >.

infocmp -1 | grep \>
is2=\E[!p\E[?3;4l\E[4l\E>,
rmkx=\E[?1l\E>,
rs2=\E[!p\E[?3;4l\E[4l\E>,

일반적으로 사용되는 이스케이프(재설정 및 초기화 문자열)입니다. 대화형 쉘이 입력을 기다리고 있을 때 키보드를 떨어뜨리거나 버튼을 눌렀을 때 ~파일 시스템 전체에서 무작위로 잘린 파일이 발생할 수 있다는 것을 상상하는 것은 어렵지 않습니다 . 적어도 내 경우에는 가끔 나타나는 경우가 있습니다.

관련 정보