\uFFFD(65533) 문자가 포함된 디렉터리가 많이 있습니다. 문제는 이 문자로 인해 실제로 이 디렉터리에 액세스할 수 없다는 것입니다.
Foo�o
예를 들어, (� == \uFFFD
) 라는 디렉터리가 있습니다.
ls Foo�o
작동하지 않습니다(그래서 tab항상 가능한 유일한 파일을 표시하지만 작동하지 않기 때문에 완료하지 않습니다)ls Foo*
직장에서
문제는 같은 문자로 시작하는 다른 디렉토리가 있을 수 있기 때문에 2. 방식을 사용할 수 없다는 것입니다. 따라서 실제 질문은 그러한 캐릭터를 탈출할 수 있는 방법이 있는지 여부입니다.
그래서 저는 이것의 작동하는 버전을 찾고 있습니다: ls Foo\uFFFDo
<= 작동하지 않습니다
답변1
내부 완성에 의존할 수 없거나 의존하고 싶지 않은 경우 사용 중인 셸에 따라 문자를 올바르게 이스케이프 처리해야 합니다. 예를 들어 Bash에서 올바른 이스케이프 방법은 다음과 같습니다.
$ ls $'Foo\uFFFDo'
Foo�o
쉘 매뉴얼 페이지에서 인용 섹션을 참조하십시오.
답변2
다음 명령을 실행해 보세요.
$ find Foo* -ls