이름이 단일 문자 인 성가신 작은 파일이 있는데 그 문자는 \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 ?
이상한 캐릭터를 인용하는 방법을 배우거나 찾아보기에는 너무 게으 르기 때문에 어려운 이름의 파일이 붙어있을 때이 변형을 여러 번 사용했습니다.