“\”라는 파일 또는 디렉토리를 제거하려면 어떻게해야합니까?


20

우분투 컴퓨터에서 터미널을 사용하고 있으며 삭제하려는 파일이 있습니다. 파일 이름은 \백 슬래시입니다.

보통은 보통

rm filename

그러나 그렇게 rm \하면 여러 줄 명령을 작성하려고한다고 생각합니다.

이 파일을 어떻게 삭제합니까? GUI 파일 시스템 만 사용할 수는 있지만 그다지 효율적이지 않습니다.

그래서 어떻게 터미널에서 \? 라는 파일을 삭제할 수 있습니까?


1
왜 그런 이름의 파일이 있습니까? ( code이 코멘트에서 여기에 블록을 넣을 수도 없습니다 !)
AJMansfield

7
더 재밌는 경우 Ctrl-G라고 불리는 <BEL>이라는 파일을 삭제하는 것이 더 재미 있습니다. 매번 당신이 할 LS에게 당신의 (a)까지의 키보드 경고음이 발견 보이지 않는 파일을; (b) 이름에 인쇄 할 수없는 문자가 하나만있는 파일을 삭제하는 방법을 결정했습니다.
Pieter Geerkens

1
더 중요한 것은 "/"라는 파일을 어떻게 삭제합니까?
Curt

1
@ 커트 fsck. 진심으로. 이름 /이 지정된 파일이 있으면 파일 시스템이 손상된 것입니다.
zwol

2
나는 항상 *나 자신 이라는 파일을 좋아했습니다 ...
RBerteig

답변:


48

사용 rm \\(다른 백 슬래시 백 슬래시를 이스케이프). 이것은 또한라는 이름의 디렉토리를 들어, 이와 비슷하게 작동합니다 \(중 하나를 사용하여 rmdir, 또는 rm-r플래그).

예:

> mkdir 데모
> cd 데모
> 터치 \\
> ls -l
총 0
-rw ------- 1 편 사용자 0 Jul 29 20:25 \
> rm \\
> ls -l
총 0

3
또는 같은 원칙에 따라 rm '\'(그러나 아님 rm "\" ).
evilsoup

2
@evilsoup은 그에 대한 추가 설명을 제공 \ 하기 위해 문자가 큰 따옴표로 구분 된 문자열에서 이스케이프 문자로 사용됩니다. 말하고는 rm "\"두 번째 따옴표는 이스케이프 문자로 사용된다 (따라서 이중 따옴표 문자 자체와 같이 구문 분석 할 것 같은 닫히지 않은 문자열로 해석됩니다 없는 문자열의 끝). 따라서 터미널은 다른 문자열로 끝낼 때까지 기다립니다 ". 큰 따옴표를 사용하는 동등한 방법은 다음과 같습니다 rm "\\"( 이미 확인한 것처럼와 rm '\'와 모두 직접 같습니다 rm \\ ).
획기적인

15

이름에 이상한 문자가있는 파일을 수동으로 삭제하는 일반적인 방법은 다음과 같습니다.

rm -i ./*

디렉토리의 각 파일을 삭제할지 여부를 선택하라는 메시지가 표시됩니다.


3
또는 단일 문자입니다. rm -i ./?
Hennes

1
네. ./*보다 더 구체적인 글을 쓸 수 있다면, 특히 파괴적인 일을 할 때 항상 좋은 생각입니다.
zwol

4
당신의 글로브를 접두어로 +1./
evilsoup

12

파일의 inode를 참조하여 링크를 해제 할 수도 있습니다

linus ~/test $ touch \\
linus ~/test $ ls -li
total 0
15204561 -rw-r--r-- 1 pat sudo 0 Jul 29 23:03 \
linus ~/test $ find . -inum 15204561 -exec rm -v {} \;
removed `./\\'
linus ~/test $ ls -li
total 0
linus ~/test $ 

0

먼저 파일의 inode를 확인하십시오. ls -li

137791 -rw-rw-r--. 1 svr svr 366 3 월 11 일 15:57

"\"의 inode는 "137791"이며 find 명령을 사용하여 inode 번호가있는 "\"를 삭제하십시오.

찾기 . -inum 137791 -exec rm -i {} \;

rm : 일반 파일`./ \ '를 제거 하시겠습니까? 예

그러면 "\"가 제거됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.