Next: , Previous: Relative File Names, Up: File Names   [Contents][Index]


24.8.4 ¥Õ¥¡¥¤¥ë̾¤òŸ³«¤¹¤ë´Ø¿ô

¥Õ¥¡¥¤¥ë̾¤ÎŸ³«¡Êexpansion¡Ë¤È¤Ï¡¢ ÁêÂÐ¥Õ¥¡¥¤¥ë̾¤òÀäÂÐ¥Õ¥¡¥¤¥ë̾¤ËÊÑ´¹¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤³¤ì¤Ï¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò´ð½à¤Ë¹Ô¤¦¤Î¤Ç¡¢ Ÿ³«¤¹¤Ù¤­¥Õ¥¡¥¤¥ë̾¤Ë²Ã¤¨¤Æ¡¢¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î̾Á°¤â »ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢Å¸³«¤Ç¤Ï¡¢./¤äname/../¤Î¤è¤¦¤Ê¾éĹÉôʬ¤ò ¼è¤ê½ü¤¤¤Æ¥Õ¥¡¥¤¥ë̾¤òñ½ã¤Ë¤·¤Þ¤¹¡£

Function: expand-file-name filename &optional directory

¤³¤Î´Ø¿ô¤Ïfilename¤òÀäÂÐ¥Õ¥¡¥¤¥ë̾¤ËÊÑ´¹¤¹¤ë¡£ directory¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢ filename¤¬ÁêÂÐ¥Õ¥¡¥¤¥ë̾¤Ç¤¢¤ì¤Ð¡¢ ¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò´ð½à¤Ë¤¹¤ë¡£ ¡Êdirectory¤ÎÃͤ½¤Î¤â¤Î¤ÏÀäÂХǥ£¥ì¥¯¥È¥ê̾¤Ç¤¢¤ë¤³¤È¡£ ‘~’¤Ç»Ï¤Þ¤Ã¤Æ¤â¤è¤¤¡£¡Ë ¤µ¤â¤Ê¤±¤ì¤Ð¡¢¥Ð¥Ã¥Õ¥¡¤Îdefault-directory¤ÎÃͤò»È¤¦¡£ ¤¿¤È¤¨¤Ð¤Ä¤®¤Î¤È¤ª¤ê¡£

(expand-file-name "foo")
     ⇒ "/xcssun/users/rms/lewis/foo"
(expand-file-name "../foo")
     ⇒ "/xcssun/users/rms/foo"
(expand-file-name "foo" "/usr/spool/")
     ⇒ "/usr/spool/foo"
(expand-file-name "$HOME/foo")
     ⇒ "/xcssun/users/rms/lewis/$HOME/foo"

.’¤ä‘..’¤ò´Þ¤à¥Õ¥¡¥¤¥ë̾¤Ï¡¢¤½¤ì¤é¤ÎÀµÂ§¤Ê·Á¤Ëñ½ã²½¤¹¤ë¡£

(expand-file-name "bar/../foo")
     ⇒ "/xcssun/users/rms/lewis/foo"

expand-file-name¤Ï´Ä¶­ÊÑ¿ô¤òŸ³«¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¡£ substitute-in-file-name¤À¤±¤¬¤½¤ì¤ò¹Ô¤¦¡£

Function: file-relative-name filename directory

¤³¤Î´Ø¿ô¤ÏŸ³«¤ÎµÕÁàºî¤ò¹Ô¤¦¡£ ¤Ä¤Þ¤ê¡¢directory¤ò´ð½à¤Ë²ò¼á¤¹¤ë¤È filename¤ÈÅù²Á¤Ë¤Ê¤ëÁêÂÐ̾¤òÊÖ¤¹¡£

ÀäÂÐ¥Õ¥¡¥¤¥ë̾¤¬ÁõÃÖ̾¤Ç»Ï¤Þ¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£ ¤½¤Î¤è¤¦¤Ê¥·¥¹¥Æ¥à¤Ç¤Ï¡¢directory¤Èfilename¤¬ 2¤Ä¤Î°Û¤Ê¤ëÁõÃÖ̾¤Ç»Ï¤Þ¤ë¤È¡¢ filename¤ËÅù²Á¤Êdirectory¤ò´ð½à¤Ë¤·¤¿ÁêÂÐ̾¤Ï¤Ê¤¤¡£ ¤½¤Î¤è¤¦¤Ê¾ì¹ç¡¢file-relative-name¤Ï ÀäÂÐ̾¤Î·Á¤Çfilename¤òÊÖ¤¹¡£

(file-relative-name "/foo/bar" "/foo/")
     ⇒ "bar"
(file-relative-name "/foo/bar" "/hack/")
     ⇒ "/foo/bar"
Variable: default-directory

¤³¤Î¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤ÎÃͤϡ¢ ¥«¥ì¥ó¥È¥Ð¥Ã¥Õ¥¡¤Î¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¡£ ¤³¤ì¤ÏÀäÂХǥ£¥ì¥¯¥È¥ê̾¤Ç¤¢¤ë¤³¤È¡£ ‘~’¤Ç»Ï¤Þ¤Ã¤Æ¤â¤è¤¤¡£ ¤³¤ÎÊÑ¿ô¤Ï³Æ¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤¤¤Æ¥Ð¥Ã¥Õ¥¡¥í¡¼¥«¥ë¤Ç¤¢¤ë¡£

expand-file-name¤Ï¡¢¤½¤ÎÂè2°ú¿ô¤¬nil¤Ç¤¢¤ë¤È ¥Ç¥Õ¥©¥ë¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò»È¤¦¡£

UNIX¤Ç¤Ï¡¢¤³¤ÎÃͤϤĤͤ˥¹¥é¥Ã¥·¥å¤Ç½ª¤ëʸ»úÎó¤Ç¤¢¤ë¡£

default-directory
     ⇒ "/user/lewis/manual/"
Function: substitute-in-file-name filename

¤³¤Î´Ø¿ô¤Ï¡¢filenameÆâ¤Î´Ä¶­ÊÑ¿ô¤Î»²¾È¤ò ´Ä¶­ÊÑ¿ô¤ÎÃͤÇÃÖ¤­´¹¤¨¤ë¡£ UNIX¤Î¥·¥§¥ë¤Î¹½Ê¸µ¬Â§¤Ë½¾¤Ã¤Æ¡¢ ‘$’¤Ï´Ä¶­ÊÑ¿ô¤ÎÃͤËÃÖ´¹¤¹¤ë¤¿¤á¤ÎÀÜÆ¬¼­¤Ç¤¢¤ë¡£

´Ä¶­ÊÑ¿ô̾¤Ï¡¢‘$’¤Ë³¤¯¡Ê²¼Àþ¤ò´Þ¤à¡Ë±Ñ¿ô»ú¤ÎÎó¤Ç¤¢¤ë¡£ ‘$’¤Î¤Ä¤®¤Îʸ»ú¤¬‘{’¤Ç¤¢¤ë¤È¡¢ Âбþ¤¹¤ë‘}’¤Þ¤Ç¤¬ÊÑ¿ô̾¤Ç¤¢¤ë¡£

¤³¤³¤Ç¤Ï¡¢´Ä¶­ÊÑ¿ôHOME¤Ï¥æ¡¼¥¶¡¼¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê̾ ‘/xcssun/users/rms’¤òÊÝ»ý¤·¤Æ¤¤¤ë¤È²¾Äꤹ¤ë¡£

(substitute-in-file-name "$HOME/foo")
     ⇒ "/xcssun/users/rms/foo"

ÃÖ´¹¸å¡¢‘/’¤Î¤Ä¤®¤Ë‘~’¤«‘/’¤¬¸½¤ì¤ë¤È¡¢ ‘/’¤Þ¤Ç¤ÎÉôʬ¤ò¤¹¤Ù¤Æ¼è¤ê½ü¤¯¡£

(substitute-in-file-name "bar/~/foo")
     ⇒ "~/foo"
(substitute-in-file-name "/usr/local/$HOME/foo")
     ⇒ "/xcssun/users/rms/foo"
     ;; /usr/local/ has been discarded.

VMS¤Ç¤Ï¡¢‘$’¤Ë¤è¤ëÃÖ´¹¤Ï¹Ô¤ï¤Ê¤¤¤¿¤á¡¢ ¤³¤Î´Ø¿ô¤Ï¾éĹÉôʬ¤ò¼è¤ê½ü¤¯°Ê³°¤Ë¤Ï¤Ê¤Ë¤â¹Ô¤ï¤Ê¤¤¡£