본문 바로가기

OS/Linux

[명령어] 여러파일 인코딩 변환 - euckr -> utf8

원글 : http://egloos.zum.com/mcchae/v/10938486


$ find . -type f -execdir iconv -f euckr -t utf-8 {} -o {}.tmp \; -execdir mv -f {}.tmp {} \;

위의 한 줄로 가능합니다.

이제 설명해 보겠습니다.

find . 
현재 디렉터리 . 에서 시작하여 모든 디렉터리 항목을 살피되,

-type f 
디렉터리를 제외하고 실제 파일만 표시하며,

-execdir iconv -f euckr -t utf-8 {} -o {}.tmp \;
일단 -exec 나 -execdir 모두 그 다음에 나오는 명령을 수행하되 \; 에서 끝이 나도록 합니다.
또한 {} 은 현재 매칭된 파일이름이 치환됩니다.
-exec는 {} 치환 시 find에서 찾은 full path 혹은 상대 path의 경로가 포함되어 나타나며,
-execdir {} 치환 시 실제 해당 하위 디렉터리에 들어가서 패스명을 제외한 파일명만 치환됩니다.
따라서 위에 명령은 각 하위디렉터리를 들어가서 모든 파일에 대하여
euckr을 utf-8 로 iconv 명령을 사용하여 변환하되 그 결과는 해당 파일명에 .tmp 를 붙인 결과가 저장됩니다.

-execdir mv -f {}.tmp {} \;
이전 명령에서 변환한 결과를 .tmp 확장자를 추가해서 붙여 놓았으므로,
이 명령에서 다시 원본으로 되돌리는 역할을 수행합니다.



'OS > Linux' 카테고리의 다른 글

[CentOS] 원격데스크탑 연결 - XRDP  (0) 2016.03.11
[CentOS]시스템 인코딩 확인 및 변경  (0) 2016.02.13
[명령어] find - 파일 찾기  (0) 2015.05.19