리눅스에서이 이름을 가진 파일을 삭제하는 방법 :-] ??????? q [중복]


14

이 질문에는 이미 답변이 있습니다.

어떻게 든 이름의 파일 -]???????q이 내 터미널에서 만들어졌습니다. rm -f "-] ??????? q"(큰 따옴표)를 시도했지만 삭제되지 않았습니다. (오류 ::) rm: invalid option -- ]. 어떻게 삭제합니까?


비슷한 문제가 있었는데, 제 경우에는 삼바 구현 문제였습니다. 서버로 ssh 한 다음 제거하십시오
Buksy

답변:


23

예를 들면 다음과 같습니다.

rm -- '-]???????q'

어디 --의미 "옵션을 구문 분석 중지".


실제로, 나는 스위치라고 생각조차하지 않는 비슷한 문제에 부딪쳤다. 나는 그것을 알아 내려고 노력하는 데 2 ​​시간을 보냈다고 맹세합니다.
Jeff F.

많은 응용 프로그램 --에서이 getopt기능 을 사용하기 때문에 사실상 표준이라고 생각합니다 .
cYrus

13

rm과 함께 파일 이름을 사용하거나 다음과 같이 find와 함께 inode 번호를 사용할 수 있습니다.

rm -- -]???????q
# or
  -> ls -i                                                                                                                         
47984689 blah.ui  47983771 __init__.py  
47983773 testpy.e4p  47985161 Ui_blah.py

  -> find -inum 47983773                                                                                                           
./testpy.e4p

  -> find -maxdepth 1 -inum 47983773 -exec rm -i '{}' \;
#or
  -> find -maxdepth 1 -inum 47983773 -delete

추가 그렇지 않으면 모든 하위 디렉토리를 반복합니다 찾을 수 1 -maxdepth :find -maxdepth 1 -inum 47983773 -delete
파비안 Ritzmann

@ FabianRitzmann 좋은 전화, 나는 그것을 추가했다.
OneOfOne

1
이것이 정답입니다. iNode로 이름에 유효하지 않은 문자가있는 파일에 액세스하는 것이 유일한 올바른 방법입니다.
ScumCoder

1
rm ./"-]???????q"

큰 따옴표는 쉘이 심문 마크를 확장하지 못하게합니다. 예를 들어, -] foobar.q 라는 다른 파일이있는 경우 :

$ touch ./"-]???????q" ./-]foobar.q
$ echo ./-]???????q
./-]foobar.q ./-]???????q

오. 따옴표를 넣었지만 누락되었습니다./
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.