이 파일과 같이 특수 문자가 포함 된 파일을 포함하는 많은 디렉토리와 하위 디렉토리가 있습니다.
robbie@phil:~$ ls test�sktest.txt
test?sktest.txt
찾기는 이스케이프 시퀀스를 나타냅니다.
robbie@phil:~$ find test�sktest.txt -ls
424512 4000 -rwxr--r-x 1 robbie robbie 4091743 Jan 26 00:34 test\323sktest.txt
콘솔에서 이름을 입력 할 수있는 유일한 이유는 탭 완성 때문입니다. 이것은 또한 수동으로 이름을 바꾸고 특수 문자를 제거 할 수 있음을 의미합니다.
LC_ALL을 UTF-8로 설정했는데 도움이되지 않는 것 같습니다 (또한 새로운 쉘에는 없음).
robbie@phil:~$ echo $LC_ALL
en_US.UTF-8
Mac에서 ssh를 사용하여 컴퓨터에 연결하고 있습니다. 우분투 설치입니다.
robbie@phil:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=7.10
DISTRIB_CODENAME=gutsy
DISTRIB_DESCRIPTION="Ubuntu 7.10"
Shell은 Bash이고 TERM은 xterm-color로 설정되어 있습니다.
이 파일들은 꽤 오랫동안 존재 해 왔으며 Ubuntu 설치를 사용하여 만들지 않았습니다. 그래서 시스템 인코딩 설정이 무엇인지 알 수 없습니다.
나는 다음 라인을 따라 시도했다.
find . -type f -ls | sed 's/[^a-zA-Z0-9]//g'
그러나 원하는 모든 것을 수행하는 솔루션을 찾을 수 없습니다.
- 표시 할 수없는 문자가있는 모든 파일을 식별하십시오 (위의 방법은 너무 무시 함)
- 디렉토리 트리의 모든 파일에 대해 (반복적으로) mv oldname newname을 실행하십시오.
- 선택적으로, ä와 같은 특수 문자를 음역하는 기능 (필수는 아니지만 훌륭 할 것입니다)
또는
- 이러한 모든 파일을 올바르게 표시합니다 (파일을 열려고 할 때 응용 프로그램에 오류가 없음)
모든 파일을 반복하고 이동하는 것과 같은 비트와 조각이 있지만 파일을 식별하고 mv 명령에 올바르게 형식을 지정하는 것은 어려운 부분 인 것 같습니다.
왜 올바르게 표시되지 않는지 또는 올바른 인코딩을 "추측"하는 방법에 대한 추가 정보도 환영합니다. (나는 convmv를 시도했지만 내가 원하는 것을 정확하게하지 않는 것 같습니다 : http://j3e.de/linux/convmv/ )