convmv を使うとファイル名をまとめて NFC/NFD Unicode 正規化できる。
Perl スクリプトで 内部的には Unicode::Normalize::NFC と Unicode::Normalize::NFD を使って正規化しているので UTF-8-MAC にできるわけではないようだ。
$ brew install convmv
カレントディレクトリ以下にあるファイルのファイル名を再帰的にチェックし NFC Unicode 正規化されたファイル名にリネームする。
dry-run
$ convmv -f utf8 -t utf8 --nfc -r .
で変換されるファイル名を確認。問題なければ
$ convmv -f utf8 -t utf8 --nfc -r . --notest
で実際に実行する。 NFD Unicode 正規化した場合は --nfc の代わりに --nfd を指定する。
Cryptomator で macFUSE を使って vault をマウントすると、マウントポイント以下ではファイル名が NFD (java.text.Normalizer.Form.NFD) に Unicode 正規化されるようになっていた。 Cryptomator 1.6.7 で実際に確認した。
を読むと vault 内では NFC (java.text.Normalizer.Form.NFC) で正規化されており、 Mac 版で FUSE を使ってアクセスする場合に NFD にトランスコードする実装になっているようだ。
入口裏側#photography
— Naney (@Naney) March 26, 2022
RICOH GR IIIx #GR #GRIIIx #GR3x pic.twitter.com/HnjF4yUVJb
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。