파일 이름에 인쇄할 수 없는 문자가 포함된 파일을 삭제하는 방법

파일 이름에 인쇄할 수 없는 문자가 포함된 파일을 삭제하는 방법

어떻게든 파일 이름이 없는 것 같은 파일을 만들었습니다. 파일에 대한 자세한 내용을 확인하는 방법에 대한 정보를 아래에서 찾았습니다.철사.

그러나 나열된 제안 사항 중 일부를 시도했지만 파일을 삭제할 수 없는 것 같습니다. 무엇을 해서 만들었는지 잘 모르겠지만 xml 파일을 복사하려고 할 때 이런 현상이 발생합니다.

파일의 일부 정보는 다음과 같습니다.

> ls -lb
total 296
-rw-r--r--   1 voyager  endeavor  137627 Jan 12 12:49 \177

> file *
:               XML document

> ls -i
 417777   

나는 inum 스위치를 사용하는 방법을 찾은 다음 이를 제거하는 가장 쉬운 방법인 것처럼 보이므로 rm에 연결하려고 했습니다. 그러나 아래 링크된 스레드 맨 아래에 제공된 예는 나에게 실패합니다. 예는 다음과 같습니다:

> find -inum 41777 -exec ls -al {} \;
find: illegal option -- i
find: [-H | -L] path-list predicate-list

그래서 처음에는 아래와 같은 경로 목록을 사용해 보았지만 그 역시 작동하지 않았습니다.

> find . -inum 41777 -exec ls -al {} \;

인쇄할 수 없는 문자 \177이 무엇인지, 이를 명령에 전달하는 방법을 잘 모르겠지만 rm이 파일을 삭제하려고 할 때 다른 파일/디렉터리를 엉망으로 만들지 않도록 하고 싶습니다.

답변1

파일에 이름이 있지만 인쇄할 수 없는 문자로 구성되어 있습니다. ksh93, bash, zsh, mksh 또는 FreeBSD sh를 사용하는 경우 인쇄할 수 없는 이름을 지정하여 제거해 볼 수 있습니다. 먼저 이름이 올바른지 확인하세요. ls -ld $'\177' 올바른 파일이 나타나면 rm을 사용하세요.rm $'\177'

또 다른 (위험한) 접근 방식은 rm 옵션을 사용하는 것입니다 rm -i -- *. 파일을 삭제하기 전에 확인이 필요하므로 해당 파일을 제외하고 유지하려는 모든 파일을 건너뛸 수 있습니다.

행운을 빌어요!

답변2

vim현재 작업 디렉토리에서 실행하는 경우 :

$ vim ./ 

화살표 키를 사용하거나 파일로 이동합니다 j/k. 그런 다음 클릭 Shift+D하고 삭제를 확인하세요 y.

답변3

파일 이름을 에 전달하는 방법이 있을 수 있지만 rm문제가 발생할까 봐 걱정된다면 GUI 파일 관리자를 사용할 수 있습니다. Emacs에는 설치된 경우 사용할 수 있는 디렉토리 편집 모드가 제공됩니다.

  1. emacs실행 emacs /path/to/folder하거나 emacs를 열고 Esc+를 누른 x다음 를 실행하면 dired경로를 묻는 메시지가 표시됩니다.

    http://so.mrozekma.com/unix-dired-delete1.png

  2. 삭제하려는 파일이 있는 줄로 이동한 후 을 누르세요 d. D파일 왼쪽 옆에 다음 중 하나가 표시 됩니다 .

    http://so.mrozekma.com/unix-dired-delete2.png

  3. x변경 사항을 저장하려면 누르세요 . 파일 삭제를 확인하라는 메시지가 표시됩니다 y.

    http://so.mrozekma.com/unix-dired-delete3.png

답변4

file *쉘 glob( *)이 이 파일을 얻을 수 있다는 것을 시연했으므로 이제 rmglob에서 작업을 수행하기만 하면 됩니다.

  • 파일이 있는 디렉터리로 변경합니다.
  • 달리기rm -i *
  • n눈에 보이지 않는 파일 이름을 제외한 모든 파일을 입력하세요 .

관련 정보