FrontPage › hard_symbolic_link
1993.1.18
SUBJECT: Symbolic/Hard linkÀÇ ºñ±³CONTENTS:
0. Introduction
1. Hard link
0. Introduction
1. Hard link
1) "link"ÀÇ °³³ä:
2) hard link¶õ ?
3) hard linkÀÇ Æ¯¼º
2. Symbolic link2) hard link¶õ ?
3) hard linkÀÇ Æ¯¼º
DESCRIPTION:
0. UNIXÀÇ file typeÀ» ¾ê±âÇÒ ¶§,
Revision History
Created on Jan. 18 ,1993
0. UNIXÀÇ file typeÀ» ¾ê±âÇÒ ¶§,
ordinary, directory, special, socket, FIFOs¿Í ÇÔ²²
symbolic link, hard linkµµ ¾ð±ÞµÈ´Ù.
symbolic/hard link¸¦ file typeÀ¸·Î ÀÌÇØÇÏ·Á¸é ¿ì¼± °³³ä°ú Ư¡À» ÀÌÇØÇØ¾ß ÇÒ °Í °°´Ù.
1. Hard linksymbolic link, hard linkµµ ¾ð±ÞµÈ´Ù.
symbolic/hard link¸¦ file typeÀ¸·Î ÀÌÇØÇÏ·Á¸é ¿ì¼± °³³ä°ú Ư¡À» ÀÌÇØÇØ¾ß ÇÒ °Í °°´Ù.
1) "link"ÀÇ °³³ä:
2. Symbolic link- "link"¶ó´Â °³³äÀ» ÀÌÇØÇÏ´Â ÇÑ ¹æ¹ýÀº
2) hard link¶õ ?filesystemÀÇ directory°¡ ¾î¶»°Ô °èÃþÀûÀ¸·Î ±¸Á¶¸¦ Çü¼ºÇÏ°í ÀÖÀ¸¸ç
¾î¶»°Ô "cd" command·Î ¿©·¯ directory¸¦ À̵¿ÇÒ ¼ö Àִ°¡¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ´Ù.
- °¢ directory´Â ±âº»ÀûÀ¸·Î ÃÖ¼ÒÇÑ µÎ °³ÀÇ fileÀ» °¡Áø´Ù.¾î¶»°Ô "cd" command·Î ¿©·¯ directory¸¦ À̵¿ÇÒ ¼ö Àִ°¡¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ´Ù.
¨ç directory ÀÚ½ÅÀ» Ç¥ÇöÇÏ´Â dot(.)
¨è ÀÚ½ÅÀÇ parent directory¸¦ Ç¥ÇöÇÏ´Â dot-dot(..)
- ÀÌ µÎ fileÀÌ directoryµéÀ» ¿¬°áÇÏ¿© filesystemÀÇ °èÃþÀû ±¸Á¶¸¦ Çü¼ºÇÑ´Ù.¨è ÀÚ½ÅÀÇ parent directory¸¦ Ç¥ÇöÇÏ´Â dot-dot(..)
°¢ directoryÀÇ parent¿Í sub-directory¸¦ dot(.)¿Í dot-dot(..) file·Î ¿¬°á ÇÏ´Â °ÍÀÌ´Ù.
Áï ¨ç 'current directoryÀÇ dot-dot(..) file'ÀÇ inode
- sub directory°¡ ¿©·¯ °³ÀÎ directoryÀÇ °æ¿ìÁï ¨ç 'current directoryÀÇ dot-dot(..) file'ÀÇ inode
= 'parent directoryÀÇ dot(.) file'ÀÇ inode
¨è 'current directoryÀÇ dot(.) file'ÀÇ inode
= 'sub directoryÀÇ dot-dot(..) file'ÀÇ inode
sub directoryµéÀÇ dot-dot(..) fileÀÇ inode´Â
À̵é parent directoryÀÇ dot(.) fileÀÇ inode¿Í °°À» °ÍÀÌ´Ù.
´Þ¸® Ç¥ÇöÇϸé, sub directoryµéÀÇ °¢ 'drectory entry'´Â
current directoryÀÇ dot-dot(..) file Áï parenet directoryÀÇ inode¸¦ °¡¸®Å°´Â °ÍÀÌ´Ù.
- ÀÌó·³ 'ÇϳªÀÇ inode'¿¡ '¿©·¯ °³ÀÇ (direcory) file'ÀÌ '¿¬°á(link)'µÇ¾î ÀÖÀ» ¼ö ÀÖ°í,À̵é parent directoryÀÇ dot(.) fileÀÇ inode¿Í °°À» °ÍÀÌ´Ù.
´Þ¸® Ç¥ÇöÇϸé, sub directoryµéÀÇ °¢ 'drectory entry'´Â
current directoryÀÇ dot-dot(..) file Áï parenet directoryÀÇ inode¸¦ °¡¸®Å°´Â °ÍÀÌ´Ù.
ÀÌ ¶§ '¿¬°á(link)µÈ °¹¼ö'¸¦ 'link °¹¼ö'¶ó ÇÑ´Ù.
"ls -l"À» »ç¿ëÇϸé directoryµéÀÌ ÃÖ¼ÒÇÑ 2°³ ÀÌ»óÀÇ 'link °¹¼ö'¸¦ °¡Áö°í ÀÖÀ½À»
È®ÀÎÇÒ ¼ö ÀÖ´Ù.
"ls -l"À» »ç¿ëÇϸé directoryµéÀÌ ÃÖ¼ÒÇÑ 2°³ ÀÌ»óÀÇ 'link °¹¼ö'¸¦ °¡Áö°í ÀÖÀ½À»
È®ÀÎÇÒ ¼ö ÀÖ´Ù.
- À§¿¡¼ directory¸¦ µé¾î ¼³¸íÇÑ linkÀÇ °³³ä¼
3) hard linkÀÇ Æ¯¼º¿©·¯°³ÀÇ (directory) fileµéÀÌ
ÇÑ °³ÀÇ inode number¸¦ »ç¿ëÇØ ¼·Î ¿¬°áµÉ ¼ö ÀÖÀ½À» º¸¾Ò´Ù.
- hard link¶õ ÀÌ·¯ÇÑ link¿Í °°Àº °³³äÀÌ´Ù.ÇÑ °³ÀÇ inode number¸¦ »ç¿ëÇØ ¼·Î ¿¬°áµÉ ¼ö ÀÖÀ½À» º¸¾Ò´Ù.
ÇÑ fileÀÇ inode¿¡ ¿©·¯ fileµéÀÇ inode¸¦ ÀÏÄ¡½ÃÅ´À¸·Î½á
¼·Î¸¦ ¿¬°á(link)½ÃÅ°´Â ¹æ½ÄÀÎ °ÍÀÌ´Ù.
- hard link´Â 'directory file'ÀÇ link ±¸Á¶¸¦ 'ordinary file'·Î È®Àå½ÃŲ °ÍÀÌ´Ù.¼·Î¸¦ ¿¬°á(link)½ÃÅ°´Â ¹æ½ÄÀÎ °ÍÀÌ´Ù.
Áï "ln"À̶ó´Â command¸¦ »ç¿ëÇÏ¿©
½ÇÁ¦ (hard) linkµÈ fileµéÀ» »ý¼ºÇÔÀ¸·Î½á 'link¶ó´Â ³»ºÎÀû Ç¥Çö'À»
'hard link file (type)'À¸·Î ¹Ù²Ù¾î ÁÖ´Â °ÍÀÌ´Ù.
- hard link¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ½ÇÁ¦ (hard) linkµÈ fileµéÀ» »ý¼ºÇÔÀ¸·Î½á 'link¶ó´Â ³»ºÎÀû Ç¥Çö'À»
'hard link file (type)'À¸·Î ¹Ù²Ù¾î ÁÖ´Â °ÍÀÌ´Ù.
symbolic linkó·³ filename¿¡¼ È®ÀÎÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï°í,
'link °¹¼ö'°¡ 2 ÀÌ»óÀΰ¡¸¦ È®ÀÎÇÏ°í
inode number°¡ °°Àº fileÀ» ã¾Æ¾ß ÇÏ´Â °ÍÀÌ´Ù.
'link °¹¼ö'°¡ 2 ÀÌ»óÀΰ¡¸¦ È®ÀÎÇÏ°í
inode number°¡ °°Àº fileÀ» ã¾Æ¾ß ÇÏ´Â °ÍÀÌ´Ù.
- hard link´Â fileÀÌ Á¸ÀçÇÒ ¶§¸¸ ¸¸µé¾î Áú ¼ö ÀÖ´Ù.
Áï inode°¡ ¹Ì¸® Á¸ÀçÇÏ°í ÀÖ¾î¾ß 'µ¿ÀÏ inode'¸¦ °®´Â fileÀ» ¸¸µé ¼ö Àִ°Í.
- filesystemÀ» crossÇÏ¿© hard link¸¦ Çü¼ºÇÒ ¼ö´Â ¾ø´Ù.A filesystem¿¡¼ B filesystem¿¡ ÀÖ´Â file(inode number¸¦ 2577À̶ó ÇÑ´Ù¸é)·Î
hard link¸¦ ½ÃµµÇÑ´Ù ÇÔÀº B filesystemÀÇ file inode number 2577°ú °°Àº inode number¸¦
A filesystemÀÇ hard linkµÈ fileÀÌ °¡Áø´Ù´Â °Í.
±×·¯³ª ½ÇÁ¦ A filesystemÀÇ inode number 2577Àº B filesystemÀÇ 2577°ú´Â ¹«°üÇÑ °ÍÀÌ´Ù.
- super user¸¸ÀÌ directory¸¦ °¡¸®Å°´Â »õ·Î¿î (hard) link¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù.hard link¸¦ ½ÃµµÇÑ´Ù ÇÔÀº B filesystemÀÇ file inode number 2577°ú °°Àº inode number¸¦
A filesystemÀÇ hard linkµÈ fileÀÌ °¡Áø´Ù´Â °Í.
±×·¯³ª ½ÇÁ¦ A filesystemÀÇ inode number 2577Àº B filesystemÀÇ 2577°ú´Â ¹«°üÇÑ °ÍÀÌ´Ù.
ÀÌ´Â filesystemÀÌ loopingÀ» µ¹°Ô²û linkµÉ ¼ö ÀÖ´Â °¡´É¼ºÀÌ Àֱ⠶§¹®ÀÌ´Ù.
- hard linkµÈ fileÁß Çϳª¸¦ Áö¿ü´Ù°í ÇÏ¿© ½ÇÁ¦ ±× fileÀ» Áö¿ü´Ù°í ÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù.hard linkµÇ¾î ÀÖ´Â ´Ù¸¥ fileÀÌ µ¿ÀÏ inode¸¦ »ç¿ëÇϱ⠶§¹®ÀÌ´Ù.
fileÀ» Áö¿ü´Ù ÇÔÀº ±× fileÀÌ »ç¿ëÇÏ°í ÀÖ´Â indoe°¡ releaseµÊÀ» ÀǹÌÇÑ´Ù.
fileÀ» Áö¿ü´Ù ÇÔÀº ±× fileÀÌ »ç¿ëÇÏ°í ÀÖ´Â indoe°¡ releaseµÊÀ» ÀǹÌÇÑ´Ù.
- ÇÑ fileÀ» ´Ü¼øÈ÷ '´Ù¸¥ À̸§(pathname)'À¸·Î Áö½ÃÇÏ´Â file typeÀÌ´Ù.
- symbolic link´Â fileÀ» °¡¸®Å°´Â 'indirect pointer'ÀÌ´Ù.
hard link´Â fileÀÇ inode·ÎÀÇ 'direct pointer'ÀÌ´Ù.
hard link°¡ µ¿ÀÏ inode¿¡ ´ëÇÑ ´Ù¼ö fileÀÇ °øÀ¯¶ó¸é
symbolic link´Â file°ú linknameÀÌ °¢±â ´Ù¸¥ inode¸¦ °¡Áø´Ù.
- hard linkÀÇ Á¦¾à »çÇ×:
¨ç ÀÌ¹Ì Á¸ÀçÇÏ´Â file¸¸À» hard linkÇÒ ¼ö ÀÖ´Ù.
¨è µ¿ÀÏÇÑ filesystem¿¡ ÀÖ´Â file¸¸ hard link°¡ °¡´ÉÇÏ´Ù.
¨é superuser¸¸ÀÌ directory·Î hard linkÇÒ ¼ö ÀÖ´Ù. ( "-f" optionÀ» »ç¿ëÇØ¾ß ÇÔ)
- ¹Ý¸é symbolic link´Â ÀÌ»óÀÇ hard link Á¦¾à »çÇ׿¡ ¹«°üÅä·Ï ±¸ÇöµÈ °Í.
¨ç ÇöÀç Á¸ÀçÇÏÁö ¾Ê´Â fileÀÌ¶óµµ (symbolic) link°¡ °¡´ÉÇÏ´Ù
¨è filesystemÀ» crossÇÏ¿© symbolic link°¡ °¡´ÉÇÏ´Ù.
¨é ÀÏ¹Ý userµµ directory·ÎÀÇ symbolic link°¡ °¡´ÉÇÏ´Ù.
- symbolic link´Â ÇÑ file/Àüü directory hierarchy¸¦
systemÀÇ ´Ù¸¥ °÷À¸·Î ¿Å±æ ¶§ ¸¹ÀÌ »ç¿ëµÈ´Ù.
- symbolic link´Â 4.2 BSD¿¡¼ µµÀԵǾú°í À̾î SVR4¿¡¼ äÅõǾú´Ù.
SVR4ÀÇ symbolic link´Â 'ÀüÅëÀûÀÎ System V filesystem'°ú
'Unified File System(UFS)' ¾çÀÚ¸¦ ¸ðµÎ Áö¿øÇÑ´Ù.
- 'symbolic link¸¦ °¡Áö´Â file(source ºÎºÐ)'ÀÇ data block¿¡´Â
'symbolic link°¡ °¡¸®Å°´Â file(destination ºÎºÐ)'ÀÇ À̸§À» °¡Áö°í ÀÖ´Ù.
¿¹¸¦ µé¾î,
lrwxrwxrwx 1 root 7 Aug 11:00 lib -> usr/lib
'directory entry'ÀÇ filename¿¡´Â 3 character string "lib"ÀÌ µé¾î ÀÖ°í
file¿¡´Â 7 byteÀÇ data "usr/lib"°¡ ÀÖ´Ù.
inodeÀÇ 'file type'¿¡ symbolic link¶ó´Â ½Äº°ÀÌ µÇ¾î ÀÖÀ¸¹Ç·Î
kernelÀº 7 byteÀÇ data "usr/lib"°¡ file "lib"¿¡¼ symbolic linkµÇ¾î ÀÖÀ½À» ¾Ë°Ô µÈ´Ù.
file¿¡´Â 7 byteÀÇ data "usr/lib"°¡ ÀÖ´Ù.
inodeÀÇ 'file type'¿¡ symbolic link¶ó´Â ½Äº°ÀÌ µÇ¾î ÀÖÀ¸¹Ç·Î
kernelÀº 7 byteÀÇ data "usr/lib"°¡ file "lib"¿¡¼ symbolic linkµÇ¾î ÀÖÀ½À» ¾Ë°Ô µÈ´Ù.
Created on Jan. 18 ,1993