파일 이름으로 \ r을 사용하여 파일을 삭제하거나 이름을 바꿉니다. 것입니다 ls -bl: -rw-rwxr–+ 1

이름이 단일 문자 인 성가신 작은 파일이 있는데 그 문자는 \r

이것을 어떻게 삭제할 수 있습니까?

이것이 내가 얻는 것입니다 ls -bl:

-rw-rwxr--+   1 root             snapplewriters        0 Aug 29  2011 \r

ls -l 그냥 “?”표시



답변

우리는 ls -li다음 파일 (첫 번째 열)의 아이 노드 번호를 사용하여 find삭제하기 (가정 inode는 12345입니다) :

find . -inum 12345 -exec rm -i {} \;


답변

ANSI-C 인용을 사용하십시오. rm $'\r'

http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting


답변

나는 개인적으로 파이썬에 도달 할 것입니다 :

>>> import os
>>> '\r' in os.listdir('.')
True
>>> os.unlink('\r')

그러나 이스케이프 문자를 이해하면 쉘 에서이 작업을 수행 할 수도 있습니다.

$ ls -b $'\r'
\r
$ rm -vi $'\r'
rm: remove regular empty file \r’? y
removed \r

답변

<carriage return>Bash 쉘을 사용하는 경우 호출되는 파일을 제거하는 또 다른 빠른 방법 은 다음과 같습니다.

$ rm <control-v><control-m>

답변

단일 문자 파일 이름은 일반적이지 않으며 디렉토리에 다른 파일이 없으면 다음을 시도하십시오.

rm ?

이상한 캐릭터를 인용하는 방법을 배우거나 찾아보기에는 너무 게으 르기 때문에 어려운 이름의 파일이 붙어있을 때이 변형을 여러 번 사용했습니다.