한글 파일명이 맥에 다녀오니 엉망

[attachment=0:3ozw8amr]screenshot1.png[/attachment:3ozw8amr]

맥에 파일을 백업했다가
다시 가져오니 한글 파일명이 좀 이상해졌네요…

일괄 변경할 좋은 방법 없을까요?

사용법
ruby1.9.1 을 설치한 후 (apt-get install ruby1.9.1)
$ ruby1.9.1 nfc.rb testdir

이렇게 하면 testdir 내의 NFD(자소 분리된 형태) 파일 이름이
NFC(자소 조합된 형태) 파일 이름으로 일괄 변경됩니다.
(testdir 의 하위 디렉토리 내의 파일까지 일괄 변경)
디렉토리 이름은 변경되지 않으며 파일 이름만 변경됩니다.

파일 이름 nfc.rb

[code:28xym2wl]
#!/usr/bin/ruby1.9.1

coding: utf-8

NFC

http://unicode.org/reports/tr15/

SBase = 0xAC00
LBase = 0x1100
VBase = 0x1161
TBase = 0x11A7
LCount = 19
VCount = 21
TCount = 28
NCount = VCount * TCount # 588
SCount = LCount * NCount # 11172

def compose_hangeul source
len = source.length
return ‘’ if len.zero?
result = ‘’
last = source[0] # copy first char
result << last

for i in 1&#46;&#46;&#46;len
    ch = source&#91;i&#93;

    # 1&#46; check to see if two current characters are L and V

    l_index = last&#46;ord - LBase
    if (0 &lt;= l_index &amp;&amp; l_index &lt; LCount)
        v_index = ch&#46;ord - VBase
        if (0 &lt;= v_index &amp;&amp; v_index &lt; VCount)

            # make syllable of form LV

            last = &#91;SBase + (l_index * VCount + v_index) * TCount&#93;&#46;pack(&quot;U&quot;)

            result&#91;-1&#93; = last # reset last
            next # discard ch
        end
    end


    # 2&#46; check to see if two current characters are LV and T

    s_index = last&#46;ord - SBase
    if (0 &lt;= s_index &amp;&amp; s_index &lt; SCount &amp;&amp; (s_index % TCount) == 0)
        t_index = ch&#46;ord - TBase
        if (0 &lt; t_index &amp;&amp; t_index &lt; TCount)

            # make syllable of form LVT

            last = &#91;last&#46;ord + t_index&#93;&#46;pack(&quot;U&quot;)
            result&#91;-1&#93; = last # reset last
            next # discard ch
        end
    end
    # if neither case was true, just add the character
    last = ch
    result &lt;&lt; ch
end # for
return result

end

require ‘find’
Find.find(ARGV[0]) do |path|
if File.file? path
File.rename(path, compose_hangeul(path))
end
end
[/code:28xym2wl]

전문가의 해결 방법이군요… :o

루비… 알흠답네요… 감사합니다. ^^;

아직 안해봤지만 잘 되겠지요?
cogniti님 답변 감사드립니다. :D