ã³ã©ã ã®ãé¡ãèãããšããå 容ãéè€ããªãããé£èŒç¬¬1åããã®èŠåºãããã£ãšãã§ãã¯ããŠããã®ã ãããªãããã»ã©éèŠãªããšãåããããŠããªãã£ããããšåçããããšãå°ãªããªããä»åã¯ãæ¿ç¹(ã)ãåæ¿ç¹(ã)ãä»ãæåãå«ããã¡ã€ã«/ãã©ã«ãåãTerminaläžã§æ±ããšãã®åé¡ãšå¯ŸçããšããããªãæããååšããããŒãã«ã€ããŠèããŠã¿ããã
ããããããããå«ããã¡ã€ã«ãæ€çŽ¢ã§ããªãçç±
ãŸããå ·äœäºäŸãã説æããããã«ã¬ã³ããã£ã¬ã¯ããªã«ããªã©ã³ãããšãããããããããã³ããšããååã®PNGãã¡ã€ã«ããããšããŠã以äžã«ç€ºãå³ã®ãšããfindã³ãã³ãã§ãã¡ã€ã«æ€çŽ¢ãããšããããã®ãšãããããããã®ã¯ãããã³ãã ããlsã³ãã³ããå®è¡ãããšç¢ºãã«ååšããããç¶Žãã«èª€ããããããã§ããªãããã æ¿ç¹ã»åæ¿ç¹ã䜿ãã«ã(æ¥æ¬èªIMEã§å ¥å)ãæ€çŽ¢èªãšããã ããªã®ã«ããããããªãã®ã ã
|
ãã¡ã€ã«åã«èª€ãã¯ãªãã¯ããªã®ã«ãæ¿ç¹ã»åæ¿ç¹ãå«ãŸãããã¡ã€ã«ã¯ãããããªã |
ãã®åé¡ã¯ãã³ããŒ&ããŒã¹ãã§è§£æ±ºãããlsã³ãã³ãã§åºåããããã¡ã€ã«åãã³ããŒããfindã³ãã³ãã®åŒæ°éšåã«ããŒã¹ããããšãä»åºŠã¯ãã£ããªããããããã®ã ãã€ãŸããæ¥æ¬èªIMEã§å ¥åããããããããšã³ãããããããããã¯å¥ã¢ããšããããšãTerminalã«éãããFinderã«è¡šç€ºããããã¡ã€ã«/ãã©ã«ãåã§ããŸã£ããåãçŸè±¡ãèµ·ããã
ããã¹ããšãã£ã¿ã«ãã®äŒŒãŠéãªã2ã€ã®æååãããŒã¹ãããã°ãäž¡è ã®éããããããããããšãã°ãéçºè 埡çšéã®ããã¹ããšãã£ã¿ãSublimeãã§è©Šããšãæ¿ç¹ã»åæ¿ç¹ãæå³ããèšå·ãã«ãæ¬äœãš2æåã«åãããŠããããšã確èªã§ããã¯ããTextEdit.appãNotes.appã§ã¯1æåã«èŠããã®ã«âŠâŠã
|
lsã³ãã³ãã®çµæãã³ããŒããŠãSublimeãã«ããŒã¹ããããšãæ¿ç¹ã»åæ¿ç¹ã®åŠçãç°ãªãããšãããã |
ãã®çãã¯ãNFD(Normalization Form Canonical Decompression)ãã ãNFDã¯Unicodeã«ãããæ£èŠåæ¹åŒã®ã²ãšã€ã§ãæ¥æ¬èªã«ãããŠã¯ã«ãã®æ¿ç¹ã»åæ¿ç¹ã欧米諞èªã§ã¯ãŠã ã©ãŠããªã©ã®èšå·ãæåæ¬äœãšåé¢ããããã§ç¬Šååãããäžæ¹ãWindowsãªã©ä»ã®OSã§ã¯ãæ¿ç¹ãåæ¿ç¹ãå«ãæåãåé¢ãã1æåãšããŠæ±ã -- åææžã®æåããæ±ããªããããNFC(Normalization Form Canonical Compression)ããšåãçµæã«ãªã -- ããšãåºæ¬ã ãåè¿°ã®äŸã§ããã°ãæ¥æ¬èªIMEã§å ¥åããæåãNFCã§ç¬ŠååãããŠããããã«ãNFDã®ãã¡ã€ã«åãšã¯å¥ã¢ããšå€å®ããããšçè§£ã§ããã
ãã®åé¡ã¯ãOS Xã§äœæãããã¡ã€ã«ãä»ã®OSãžè»¢éãããšãã«ãé¡åšåãããFAT/FAT32ãã©ãŒãããã®USBã¡ã¢ãªãèªã¿æžããããšãã®ããã«ãNFC/NFDãçžäºå€æããOS Xã®æ©èœãåãã±ãŒã¹ãããããSSH/SCPã®ããã«ãã®ãŸãŸã®ããšãå°ãªããªããäžæ¹ãDropboxãªã©ã®ãã«ããã©ãããã©ãŒã æåã®ã¯ã©ãŠããµãŒãã¹ã¯ãããããã¯ã©ã€ã¢ã³ãOSãèŠãŠå¯ŸçããŠããã®ã ãããNFC/NFDã«ãŸã€ãã諞åé¡ãçºçããªããçµå±ã®ãšãããOSã®ä»æ§ã¯å€ããããªããããã¯ã©ã€ã¢ã³ããœããã®æ®µéã§æçµçãªå¯Ÿçãè¬ããªããã°ãªããªãã®ã ã
ãªããæ£ç¢ºã«ã¯OS Xã«ãããUnicodeæ£èŠåã¯ãNFDãšãŸã£ããåãã§ã¯ãªããäžéšãæ£èŠåã®å¯Ÿè±¡ãšãããªã(ãããªãã°ãæ¹å€çNFDã)ãããªãé·ããªããããªã®ã§èª¬æã¯å²æããããRubyãEmacsãªã©OS XãŠãŒã¶ã«ãæçšãããŠãããœãããŠã§ã¢ã®å€ãã«ã¯ããã®æ¹å€çNFDã«å¯Ÿå¿ããããã®æ©èœãçšæãããŠãããæ®å¿µãªãããOS Xã®SMBã¯ã©ã€ã¢ã³ã(Finder)ã«ã¯ãã®æ©èœããªããæ¿ç¹ã»åæ¿ç¹ãå«ãå ±æããªã¥ãŒã ãéããªããšããåé¡ãEl Capitanã®ããŸãåé¡ãšããŠæ®ãã
ã¯ã€ãã¯ããã¯ã§Unicodeæ£èŠååé¡ã«å¯ŸåŠãã
Unicodeæ£èŠåã«é¢ããåé¡ã¯OS/ãã¡ã€ã«ã·ã¹ãã ã¬ãã«ã®åé¡ã§ãããããåãããä»ã®OSã®äºæ ãèæ ®ããªããã°ãªããªããããæ ¹æ¬çãªè§£æ±ºãé£ãããåè¿°ãããšãããã¯ã©ã€ã¢ã³ããœããåŽã§å¯ŸåŠãããããšã³ããŠãŒã¶ã®åµæå·¥å€«ã§ä¹ãè¶ããªããã°ãªããªãã®ãçŸå®ã ã
åé ã«æããããªã©ã³ãããããããããšãã£ãæ¿ç¹ã»åæ¿ç¹ãå«ããã¡ã€ã«ã«Terminaläžã§å¯ŸåŠããã«ã¯ãIMEåŽã§å¯Ÿå¿ã§ããã°è©±ã¯å¥ã ããããããããªãã®ã§ç¬Šååæ¹åŒã倿ããŠå¯ŸåŠãããããªãã解決çãšããã«ã¯èŠããã¯ã€ãã¯ããã¯ã¯ä»¥äžã®ãšããã§ãIMEã§å ¥åããæå(ãªã©ã³ã.png)ãechoã³ãã³ãããiconvã³ãã³ãã«ãã€ãããUTF-8ããOS Xç¬èªã®æ¹å€çNFD(UTF-8-MAC)ã«å€æããã®çµæãfindã³ãã³ãã®åŒæ°ãšãããšãããã®ã ãæéã®ããã話ã ããããã§findã³ãã³ãã§æ¿ç¹ã»åæ¿ç¹ãå«ããã¡ã€ã«ã®æ€çŽ¢ãå¯èœã«ãªãã
$ find . -name `echo "ãªã©ã³ã.png" | iconv -f UTF8 -t UTF8-MAC`
|
iconvã³ãã³ãã§æååãNFD(æ¹å€ç)ã«å€æããfindã³ãã³ãã®åŒæ°ã«äžãããšãIMEããå ¥åããæ¿ç¹ã»åæ¿ç¹ãå«ãæååã§æ€çŽ¢ã§ãã |
ããŠã³ãããSMBå ±æé åã§æ¿ç¹ã»åæ¿ç¹ãå«ããã©ã«ããéããªããšããåé¡ã«ã€ããŠã¯ãmount_smbfsã³ãã³ãã䜿ãæåã§ããŠã³ããããšããæãããããã ããå ±æããªã¥ãŒã åãUTF-8ã§ç¬Šååããªããã°ãªããªããããæºåã«ã¯å€å°ã®æéãå¿ èŠã ã以äžã®äŸã§ã¯ãIPã¢ãã¬ã¹ã192.168.12.10ã®ãã¹ãäžã«ãããã©ã€ãã©ãªããšããå ±æããªã¥ãŒã åãæå®ããŠãããããã®ãšããäžèŠã§ã¯çè§£ã§ããªããã®ãšãªã£ãŠãããURL ãšã³ã³ãŒã(笊å·å)/ãã³ãŒã(埩å·)ããŒã«ãªã©æ¯æŽããŒã«ã掻çšãã€ã€ã詊ããŠã»ããã
$ mount_smbfs //userID:PASSWORD@192.168.12.10/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA


