이름이 손상된 파일 삭제

이름이 손상된 파일 삭제

어떻게든 파일을 생성했지만 CLI를 통해 파일을 삭제하는 방법을 알 수 없는 것 같습니다.

$ ls -alF
total 8195
-rw-r--r--+ 1 me             my_group           0 Jul 19 14:10 ''$'\r'
drwxrwx---+ 1 system         system             0 Nov 17 14:58  ./
drwxr-xr-x+ 1 system         system             0 Jul 17 15:40  ../
...

여기의 첫 번째 줄 항목에서 제거할 수 있는 올바른 이스케이프 시퀀스를 찾을 수 없는 것 같습니다.

해당 항목을 grep하려고 해도 작동하지 않습니다.

$ ls -alF | head -n2
total 8195
-rw-r--r--+ 1 me             my_group           0 Jul 19 14:10

grep/을 다른 파이프 명령과 함께 사용하면 파일 이름이 표시되지 않습니다.

이것은 Cygwin 패키지 Win10 환경입니다.

답변1

두 가지 제안:

  1. 실행 ls -li하여 inode를 가져온 다음 다음 find을 사용하여 삭제합니다.

    ls -li foo
    42 -rw-r--r--. 1 user group 0 Nov 17 15:07 foo
    

inode가 42(위의 예와 같이)인 경우 다음을 실행하면 find . -inum 42 -exec rm -i {} \;대화식으로 파일을 삭제하라는 메시지가 표시됩니다.

  1. 쉘이 현재 디렉토리에서 1자, 2자, 3자 파일 이름으로 확장되도록 하려면 실행하십시오 rm -i ? ?? ???. 하나는 공백으로 나타나며 해당 파일을 제거하려면 프롬프트에 "아니오"라고 대답하면 됩니다. 문서를 보관하고 싶습니다.

답변2

나는 당신과 같은 이름의 파일을 만들려고 시도했고 매번 rm으로 삭제할 수 있었습니다. 어떤 버전의 rm을 설치했는지 알고 계십니까? 버전에 문제가 있는 것은 아닐까요? 나는 당신이 단순히 큰따옴표 안에 이름을 넣으려고 한다고 가정합니다. 그렇지 않다면 시도해보십시오.

그래도 작동하지 않으면 rm과 일부 와일드카드를 사용해 보는 것이 좋습니다. 다른 모든 파일을 폴더 밖으로 이동하고 다음 명령을 실행하십시오.

rm -f "*"

이것은 파일 시스템 자체가 손상되고 fsck가 이를 건드리지 않았을 때 한 번만 실패했습니다. 솔직히 다음에 다시 포맷할 때까지 파일을 그대로 두었습니다.

관련 정보