디렉토리 이름의 \uFFFD 문자

디렉토리 이름의 \uFFFD 문자

\uFFFD(65533) 문자가 포함된 디렉터리가 많이 있습니다. 문제는 이 문자로 인해 실제로 이 디렉터리에 액세스할 수 없다는 것입니다.

Foo�o예를 들어, (� == \uFFFD) 라는 디렉터리가 있습니다.

  1. ls Foo�o작동하지 않습니다(그래서 tab항상 가능한 유일한 파일을 표시하지만 작동하지 않기 때문에 완료하지 않습니다)
  2. ls Foo*직장에서

문제는 같은 문자로 시작하는 다른 디렉토리가 있을 수 있기 때문에 2. 방식을 사용할 수 없다는 것입니다. 따라서 실제 질문은 그러한 캐릭터를 탈출할 수 있는 방법이 있는지 여부입니다.

그래서 저는 이것의 작동하는 버전을 찾고 있습니다: ls Foo\uFFFDo<= 작동하지 않습니다

답변1

내부 완성에 의존할 수 없거나 의존하고 싶지 않은 경우 사용 중인 셸에 따라 문자를 올바르게 이스케이프 처리해야 합니다. 예를 들어 Bash에서 올바른 이스케이프 방법은 다음과 같습니다.

$ ls $'Foo\uFFFDo'
Foo�o

쉘 매뉴얼 페이지에서 인용 섹션을 참조하십시오.

답변2

다음 명령을 실행해 보세요.

$ find Foo* -ls

관련 정보