파일 이름이 UTF-8 인 파일 시스템에는 이름이 잘못된 파일이 있습니다. 그것은으로 표시됩니다 D�sinstaller
, 실제 이름을 zsh을 따라 : D$'\351'sinstaller
, 라틴를위한 Désinstaller
자체에 대한 프랑스의야만 "제거." Zsh는 일치하지 [[ $file =~ '^.*$' ]]
않지만 globbing과 일치합니다. 이것은 *
내가 예상하는 동작입니다.
이제는 실행할 때 find . -name '*'
파일 이름을 찾을 것으로 예상합니다. 실제로 파일 이름이이 테스트에 실패 할 것으로 예상하지는 않습니다. 그러나을 사용 LANG=en_US.utf8
하면 파일이 표시 되지 않으며 파일이 작동 하도록 설정 LANG=C
(또는 en_US
, 또는 ''
)해야합니다.
질문 : 구현이 무엇이고 그 결과를 어떻게 예측할 수 있습니까?
정보 : 아치 리눅스 3.14.37-1-lts, 찾기 (GNU findutils) 4.4.2
[[ $file =~ '^.*$' ]]
을 사용하지 않는 것에 의존 recode
하지만, convmv
필요하다면 이제 살펴볼 것입니다. 감사.
convmv
UTF-8로 파일 이름을 변환하는?