[Linux] inode, ์ฌ๋ณผ๋ฆญ ๋งํฌ(์ํํธ ๋งํฌ), ํ๋๋งํฌ
๋ฆฌ๋
์ค์ ๋งํฌ์๋ ๋ ๊ฐ์ง ์ข
๋ฅ๊ฐ ์๋ค. ๋ฐ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ(์ํํธ ๋งํฌ)์ ํ๋๋งํฌ์ด๋ค. ์ด๋ฅผ ์๊ธฐ ์ ์ ๋จผ์ i-node์ ๊ฐ๋
๋ถํฐ ๋ณด๊ณ ๊ฐ์.
inode
inode๋ index-node์ ์ฝ์์ด๋ค.
index๋ ํ๊ตญ์ด๋ก๋ '์์ธ'์ด๋ค. ์ฆ, ๋ณดํต ๋ฌด์ธ๊ฐ๋ฅผ ์ฐพ์ ๋ ๋นจ๋ฆฌ ์ฐพ๊ธฐ ์ํด์ ์ฐ์ธ๋ค. ์๋ฅผ ๋ค์ด ๋ฐฐ์ด arr[3]์ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ์ํด index 3์ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค.
๋ฐ๋ผ์ index-node, ์ฆ inode๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ถ์ธกํ ์์๋๋ฐ, ์ฌ๊ธฐ์ ๊ทธ '๋ฌด์ธ๊ฐ'๊ฐ 'ํ์ผ'์ด ๋๋ ๊ฒ์ด๋ค.
์ฆ inode๋ ํ์ผ์ ์ค์ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ํ์ผ๋ง๋ค ๋ถ์ฌ๋ ๋
ธ๋๋ผ๊ณ ๋ณผ ์ ์๋ค.
* ์ฐธ๊ณ ๋ก ๋ฆฌ๋
์ค๋ ๋ชจ~~~๋ ๊ฒ์ ํ์ผ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ฐ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธํ๋๋ผ๋ ๋๋ฐ์ด์ค, ํ์ดํ, ์์ผ, ๋ช
๋ น์ด ๋ฑ๋ง์ ์ ๋ง ๋ชจ๋ ๊ฒ์ด ํ์ผ์ด๋ค. ๊ทธ๋ฌ๋๊น inode๋ ๋ฐฉ๊ธ ๋ ํ์ผ์ ์์๋ค์๋ ๋ค ๋ถ์ฌ๋ผ์๋ค.
์กฐ๊ธ ๋ ์ ๋ฌธ์ ์ผ๋ก ํํํ์๋ฉด, inode๋ UFS์ ๊ฐ์ ์ ํต์ ๋ฆฌ๋
์ค ํ์ผ ์์คํ
์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋๋ก, ํ์ผ์ ์ ๋ณด์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๋ณ์์ด๋ค. ์ฆ inode๋ก ํ์ผ์ ๊ตฌ๋ถํ ์ ์๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ํ์ผ์ ๊ณ ์ ํ inode๋ฅผ ๊ฐ์ง๋ฉฐ, i-node ๋ฒํธ๋ฅผ ํตํด ๊ตฌ๋ณ์ด ๊ฐ๋ฅํ๋ค.
inode์๋ ๋์คํฌ ์์ ์ค์ ํ์ผ ์์น๊ฐ ๋ด๊ฒจ์ ธ ์๋ค. ๊ทธ๋ ๋ค๋ฉด inode๋ ๋จ์ํ ํ์ผ ์ฃผ์๋ง ๊ฐ์ง๊ณ ์๋ ๊ฒ์ผ๊น? ๊ทธ๋ ๋ค๋ฉด ํฌ์ธํฐ๋ ๋ค๋ฅผ๊ฒ ์์ง ์์๊น??
์ญ์๋ inode๋ ํ์ผ์ ์ฃผ์ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ ๋ณด๋ค๋ ๋ง์ด ๋ด๊ณ ์๋ค. ๊ทธ๋ ๋ค๋ฉด inode๊ฐ ๋ด๊ณ ์๋ ์ ๋ณด๋ค์ ๋ฌด์์ด ์์๊น?
์ ํํ inode๊ฐ ์ด๋ค ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋์ง ๊ถ๊ธํด์ http://books.gigatux.nl/mirror/kerneldevelopment/0672327201/ch12lev1sec6.html ์์ inode๊ฐ ์ด๋ป๊ฒ ๊ตฌ์กฐ์ฒด๋ก ๊ตฌํ๋์ด์๋์ง ๊ฐ์ง๊ณ ์๋ดค๋ค.
struct inode {
struct hlist_node i_hash; /* hash list */
struct list_head i_list; /* list of inodes */
struct list_head i_dentry; /* list of dentries */
unsigned long i_ino; /* inode number */
atomic_t i_count; /* reference counter */
umode_t i_mode; /* access permissions */
unsigned int i_nlink; /* number of hard links */
uid_t i_uid; /* user id of owner */
gid_t i_gid; /* group id of owner */
kdev_t i_rdev; /* real device node */
loff_t i_size; /* file size in bytes */
struct timespec i_atime; /* last access time */
struct timespec i_mtime; /* last modify time */
struct timespec i_ctime; /* last change time */
unsigned int i_blkbits; /* block size in bits */
unsigned long i_blksize; /* block size in bytes */
unsigned long i_version; /* version number */
unsigned long i_blocks; /* file size in blocks */
unsigned short i_bytes; /* bytes consumed */
spinlock_t i_lock; /* spinlock */
struct rw_semaphore i_alloc_sem; /* nests inside of i_sem */
struct semaphore i_sem; /* inode semaphore */
struct inode_operations *i_op; /* inode ops table */
struct file_operations *i_fop; /* default inode ops */
struct super_block *i_sb; /* associated superblock */
struct file_lock *i_flock; /* file lock list */
struct address_space *i_mapping; /* associated mapping */
struct address_space i_data; /* mapping for device */
struct dquot *i_dquot[MAXQUOTAS]; /* disk quotas for inode */
struct list_head i_devices; /* list of block devices */
struct pipe_inode_info *i_pipe; /* pipe information */
struct block_device *i_bdev; /* block device driver */
unsigned long i_dnotify_mask; /* directory notify mask */
struct dnotify_struct *i_dnotify; /* dnotify */
unsigned long i_state; /* state flags */
unsigned long dirtied_when; /* first dirtying time */
unsigned int i_flags; /* filesystem flags */
unsigned char i_sock; /* is this a socket? */
atomic_t i_writecount; /* count of writers */
void *i_security; /* security module */
__u32 i_generation; /* inode version number */
union {
void *generic_ip; /* filesystem-specific info */
} u;
};
๊ฐ๋ง๋ค (์ฌ๊ธฐ์๋ ์ ๋์์๋ ๊ฒ ๊ฐ์๋ฐ ์ธ์ ํ๋ฒ ๊ถ๊ธํ๋ฉด ์ฝ์ด๋ณด๋ ๊ฒ๋ ์ข์ ๋ฏ ํ๋ค.)
์๋ฌดํผ ์์ struct๋ฅผ ๋ณด๋๊น ์๊ฐ๋ณด๋ค ๋ง์๋ฐ ์ผ๋จ ์ง๊ธ ๋น์ฅ์ ์ ๊ฑธ ๋ชจ๋ ์ ํ์๋ ์๋ค.
์ฐ๋ฆฐ ์๊ฐ๋ณด๋ค inode๋ฅผ ๋ง์ด ์ ํ๊ณ ์๋ค. ์๋๋ฅผ ๋ณด์. ์ด๋ ls -li๋ก ํ์ผ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ ๊ฒฐ๊ณผ์ด๋ค.
(์ฐธ๊ณ ๋ก ls ์ -i ์ต์
์ ์ฃผ๋ฉด inode ๋ฒํธ๊ฐ ์ถ๋ ฅ๋๋ค. ์๋ ์ฌ์ง ์ข์ธก ๋ฒํธ 396850์ด inode ๋ฒํธ์ด๋ค)
๊ต์ฅํ ๋ง์ด ๋ณธ ์ ๋ณด ์๋๊ฐ? ์์๋ inode ๋ฒํธ, ๊ถํ, ๋งํฌ ์, ์์ ์,์์ ๊ทธ๋ฃน, ํ์ผ ํฌ๊ธฐ, ์์ฑ ๋ ์ง, ์ด๋ฆ ๋ฑ์ด ์ ํ์๋ค. inode๋ ์ด๋ฌํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด๋ค. stat ๋ช ๋ น์ด๋ฅผ ํตํด์๋ ํ์ผ ์ ๋ณด๋ฅผ ๋ง์ด ์ถ๋ ฅํ ์ ์์ผ๋ ์ฐธ๊ณ ํ์.
์ฆ inode๋ ์ค์ ํ์ผ์ ์๋์ง๋ง ์ฃผ์๋ฅผ ํฌํจํ ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ํ์ผ ๊ณ ์ ์ ์๋ณ์๋ผ๊ณ ๋ณด๋ฉด ๋๊ฒ ๋ค. ๊ทธ๋์ ํ์ผ์ ์ ๊ทผํ ๋๋ ๋จผ์ inode๋ฅผ ์ ๊ทผํ๊ณ inode๋ฅผ ํตํด ํ์ผ์ ์ค์ ์์น๋ก ์ ๊ทผํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
ํํธ, ์ด๋ฌํ inode๋ค์ ํ์ผ ์์คํ
์ inode list table์ด๋ ๊ณณ์ ๋ชจ์์ ธ์๋ค.
ํ์ผ์ ์์ฑํ ๋ ์๋ก์ด inode๊ฐ ๋ง๋ค์ด์ง๊ณ ํ์ผ์ด ์ญ์ ๋ ๋ inode๋ ๋ํ ์ญ์ ๋๋ ๊ฒ์ ์ฝ๊ฒ ์ถ์ธกํ ์ ์๋ค.
ํํธ ์ญ์ ๋ ๋์ ๊ฒฝ์ฐ์๋ ์ข๋ ์กฐ์ฌ์ค๋ฝ๊ฒ ์ ๊ทผํด์ผํ๋๋ฐ, ์ผ๋จ inode๊ฐ ์ ๊ฑฐ๋๋ฉด ํด๋น ํ์ผ์ ๋ฐ์ดํฐ ๋ธ๋ก๋ ์ญ์ ๋์ด ์ค์ ๋์คํฌ ๊ณต๊ฐ์ด ๋ฐํ๋๋ค.
๋จ, 1)๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํด๋น ํ์ผ์ ์ด์ด ์ฌ์ฉ ์ค์ด๊ฑฐ๋, 2)ํ์ผ์ ๋ํ ํ๋ ๋งํฌ๊ฐ(์๋์์ ๋ค๋ฃธ) ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ํ์ผ์ inode๊ฐ ์ญ์ ๋๋๋ผ๋ ์ค์ ๋ฐ์ดํฐ ๋ธ๋ก์ ์ ์ง๋ ์ ์๋ค. ํ์ผ์ด ๋ชจ๋ ํ๋ ๋งํฌ์์ ์ฐธ์กฐ๊ฐ ์ ๊ฑฐ๋๊ณ , ํ์ผ์ ์ด๊ณ ์๋ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋ ํ์์ผ ์ค์ ๋ฐ์ดํฐ ๋ธ๋ก๋ ํด์ ๋์ด ๋์คํฌ ๊ณต๊ฐ์ด ๋ฐํ๋๋ค.
stat ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ฒ๋ผ inode ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ค.
์ฌ๋ณผ๋ฆญ(์ํํธ) ๋งํฌ
์ฐ๋ฆฌ๊ฐ ๋ฆฌ๋
์ค์์ ์ฌ์ฉํ๋ ๋งํฌ๋ ๋ณดํต ์ฌ๋ณผ๋ฆญ ๋งํฌ(์ํํธ ๋งํฌ)๋ฅผ ์๋ฏธํ๋ค. ์ฐธ๊ณ ๋ก ์ํฌํธ ๋งํฌ๊ณผ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ์์ ํ ๊ฐ์ ๋ง์ด๋ค. ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ Windows์ ๋ฐ๋ก๊ฐ๊ธฐ ๊ธฐ๋ฅ๊ณผ ๋น์ทํ๋ค. ์ฆ, ์๋ณธํ์ผ๊ณผ ๋์ผํ ๊ฒ์ด ์๋๋ผ ๋จ์ง ์๋ณธ ํ์ผ์ '๊ฐ๋ฆฌํค๋' ๊ฒ ๋ฟ์ด๋ค. ์ด๋ C์์์ ํฌ์ธํฐ์ ๋น์ทํ ์ฑ์ง์ ์ง๋๊ณ ์๋ค.
ํ๋ ๋งํฌ
ํ๋๋งํฌ๋ ์๋ณธํ์ผ์ด๋ ๋๊ฐ๋ค๊ณ ๋ณด๋ฉด๋๋ค. ์๋ํ๋ฉด ๊ฐ์ inode๋ฅผ ๊ฐ๋ฆฌํค๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ์ inode๋ฉด ๋์คํฌ์์ ์์ ๋๊ฐ์ ํ์ผ์์น๋ก ์ ๊ทผํ๋ค.
cp ๋ช
๋ น์ด๋ ํท๊ฐ๋ฆด ์๋ ์๋๋ฐ, cp๋ ๋ด์ฉ๋ง ๊ฐ์ '๋ค๋ฅธ' ํ์ผ์ ๋ง๋๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ inode ๋ฒํธ๋ ๋น์ฐํ ๋ค๋ฅด๋ค. ํํธ ํ๋๋งํฌ๋ ๋จ์ง inode ๋ฒํธ๋ง ๋ณต์ฌํ๋ ๊ฒ์ด๋ฏ๋ก ๋์ผํ ํ์ผ์ ๊ฐ๋ฆฌํจ๋ค.
์ฐธ๊ณ ๋ก ๋๋ ํ ๋ฆฌ์ ์ํํธ๋งํฌ๋ฅผ ๊ฑฐ๋ ๊ฑด ๊ฐ๋ฅํ์ง๋ง ํ๋๋งํฌ๋ฅผ ๊ฑฐ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
์ฌ๊ธฐ์ ์๋ณธ ํ์ผ, ํ๋ ๋งํฌ ํ์ผ์ ๋ ๋ค inode1์ ๊ฐ๋ฆฌํค๊ณ , ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ์ inode2๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
inode๋ ๋ฆฌ๋
์ค/์ ๋์ค ํ์ผ ์์คํ
์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ก ์ฌ๋ฌ ์ ๋ณด๊ฐ ๋ด๊ฒจ์ ธ ์๊ณ ์ค์ ๋ฐ์ดํฐ ์์น ์ฃผ์๋ ๋ด๊ณ ์๋ค. ์ด๋ inode2๋ ์๋ณธ ํ์ผ ํฌ์ธํฐ๋ฅผ ๋ฐ์ดํฐ๋ก ๊ฐ์ง๊ณ , ์๋ณธ ํ์ผ ํฌ์ธํฐ๋ ์๋ณธ ํ์ผ๋ก ํฅํ๋ ํฌ์ธํฐ์ด๋ค. ์ฆ ํ๋ ๋งํฌ ํ์ผ๊ณผ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ์ด ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ ๋ค๋ฅธ ๊ฒ์ด๋ค. inode๊ฐ ๋ค๋ฅด๋ฉด ๊ทธ๋ฅ ์์ ๋ค๋ฅธ ํ์ผ์ด๋ผ๊ณ ์๊ฐํ๋ฉด๋๋ค.
์๋๋ ๋งํฌ๋ฅผ ๋ง๋๋ ๋ช
๋ น์ด์ด๋ค.
ln ์๋ณธํ์ผ์ด๋ฆ ๋งํฌํ์ผ์ด๋ฆ ; ํ๋๋งํฌ ์์ฑ
ln -s ์๋ณธํ์ผ์ด๋ฆ ๋งํฌํ์ผ์ด๋ฆ ; ์ํํธ๋งํฌ(์ฌ๋ณผ๋ฆญ๋งํฌ) ์์ฑ
์ ๋ช
๋ น์ด๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ด์ ์ง์ ํ๋ ๋งํฌ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ ์ค์ต์ ํด๋ณด์.
์ค์ต
nano ์๋ํฐ๋ก ์๋ณธํ์ผ์ด ๋ basefile ์ ์์ฑํด์ค๋ค. ์์ ๋ด์ฉ์ Hello World๋ก ์
๋ ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ln basefile hardlink ๋ก ํ๋๋งํฌ ํ์ผ์ธ hardlink๋ฅผ, ln -s basefile softlink์ผ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ์ธ softlink๋ฅผ ์์ฑํด์ฃผ์๋ค.
์ผ๋จ cat ๋ช
๋ น์ด๋ก ๋ ํ์ผ์ ๋ด์ฉ์ ์ถ๋ ฅํด๋ณด๋ฉด ์ ์์ ์ผ๋ก Hello World๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋งํฌ๊ฐ ์ ๋ ๊ฒ์ ์ ์ ์๋ค.
์ด์ ls ๋ช
๋ น์ด๋ก linktest์ ๋๋ ํ ๋ฆฌ ์ ๋ณด๋ฅผ ์ถ๋ ฅํด์ฃผ๋๋ฐ, ์์์ ์ธ๊ธํ๋ฏ -i ์ต์
์ inode ๋ฒํธ๋ฅผ ์ ์ผ ์์ ์ถ๋ ฅํด์ค๋ค.
์ถ๋ ฅ๋ ๊ฒฐ๊ณผ์์ 396850, 395100์ด inode ๋ฒํธ์ด๋ค.
์๋ฌดํผ ์ด๋ ๊ฒ ์ถ๋ ฅ๋ ๊ฒฐ๊ณผ์์ ์ฃผ๋ชฉํ ๊ฒ์ ๋จผ์ ์ํํธ๋งํฌ์ ํ์ผ ์ข
๋ฅ๋ง l๋ก ํ์๋๊ณ , ํ๋๋งํฌ๋ ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ๋ ํ์ธํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ํ basefile๊ณผ hardlink ์ inode ๋ฒํธ(396850)๋ ๊ฐ์ง๋ง ๊ทธ ๋ฒํธ์ softlink์ inode ๋ฒํธ(395100)๋ ๋ค๋ฅด๋ค๋ ๊ฒ ๋ํ ํ์ธํ ์ ์๋ค.
์ฆ, ํ๋๋งํฌ์ ์๋ณธํ์ผ์ ๋์ผํ inode๋ฅผ ๊ฐ๋ฆฌํค์ง๋ง, ์ํํธํ์ผ์ ์๋ณธํ์ผ์ ํฌ์ธํฐ๋ฅผ ๋ด์ inode๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
basefile๊ณผ hardlink๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฏ๋ก ํ์ผ ํฌ๊ธฐ๊ฐ 13์ผ๋ก ๋์ผํ์ง๋ง, softlink๋ ๋ฐ์ดํฐ ๋ธ๋ก์ ์๋ณธํ์ผ์ ํฌ์ธํฐ๋ฅผ ์ ์ฅํ๋ฏ๋ก ์์ ๋ ํ์ผ๊ณผ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฏ๋ก ํฌ๊ธฐ๊ฐ 8๋ก ๋ค๋ฅด๋ค. ์ฆ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ์ ํฌ๊ธฐ์ ์๋ณธ ํ์ผ์ ํฌ๊ธฐ๋ ์๊ด์ด ์๋ ๊ฒ์ด๋ค.
์ญ์
rm basefile์ ํตํด ์๋ณธ ํ์ผ์ ์ญ์ ํ๋ค.
softlink๊ฐ ๋นจ๊ฐ๊ฒ ๋ณํ ๊ฒ์ ๋ณผ ์ ์๋ค. ์๋ํ๋ฉด ์ํํธ๋งํฌ๊ฐ ๊ฐ๋ฆฌํค๋ ์ ๊ฐ ์ฌ๋ผ์ก๊ธฐ ๋๋ฌธ์ด๋ค. ์์์ ๋งํ๋ฏ์ด ์ํํธ๋งํฌ๋ ์๋ณธํ์ผ์ ๊ฐ๋ฆฌํค๊ณ ์๋ค.
์ญ์ ์ ๊ทผ์ด ๋์ง ์๋๋ค.
ํ์ง๋ง ์๋์๊ฐ์ด cat hardlink๋ฅผ ํด๋ณด๋ฉด ๋ ๋ค๋ฅด๋ค.
ํ๋๋งํฌ์ ์ ๋ณด๋ ๋ฒ ์ด์คํ์ผ์ด ์ฌ๋ผ์ ธ๋ ์ ์ถ๋ ฅ๋๊ณ ์๋ค. ์๋ํ๋ฉด ์๋ณธ ํ์ผ์ด ์ฌ๋ผ์ ธ๋ ํ๋๋งํฌ๋ ์๋ ํ์ผ์ด ์๋ ๊ณณ์ผ๋ก ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ๋๋งํฌ๋ฅผ ์ง์์ผ์ง ์ด ํ์ผ์ด ๋์คํฌ์์ ์์ ํ ์ญ์ ๋๋ค.
์์
basefile์ I am Haeun์ ์ถ๊ฐํด์คฌ๋ค.
ํ๋๋งํฌ, ์ํํธ๋งํฌ ํ์ผ์ ์ฝ์ด๋ณด๋ ๊ฒฐ๊ณผ๊ฐ ์ ์ ์ฉ๋์๋ค.
์ด๋ฒ์๋ ์ํํธ๋งํฌ ํ์ผ์ ์์ ํด๋ณด์๋ค.
์๋ณธ ํ์ผ, ํ๋๋งํฌ ํ์ผ๋ ์์ ์ด ์ ์ฉ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
ํ์ผ ์ด๋
์ด์ basefile์ ์์น๋ฅผ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ๋ก ์ฎ๊ฒจ๋ณด์.
softlink๊ฐ ๋นจ๊ฐ๊ฒ ๋๋ฉด์ ์ด๋๊ฐ ์๋ชป๋์๋ค๋ ๊ฒ์ ๋ํ๋ด๊ณ ์๋ค. cat softlink๋ฅผ ํด๋ณด๋ฉด ํ์ฌ ๋๋ ํ ๋ฆฌ์ basefile์ด ์์ผ๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ฌ๋ค๊ณ ์ถ๋ ฅ๋๊ณ ์๋ค. ์ฆ softlink๊ณผ basefile์ ์ฐ๊ฒฐ์ด ๋์ด์ง ๊ฒ์ด๋ค. ํ์ง๋ง cat hardlink๋ฅผ ํด๋ณด๋ฉด ์ ์์ ์ผ๋ก Hello World๊ฐ ์ถ๋ ฅ๋๋๋ฐ ์ด๋ ๋๋ ํ ๋ฆฌ๊ฐ ๋ฌ๋ผ์ ธ๋ ํ๋๋งํฌ์ ์๋ณธํ์ผ์ ์ฐ๊ฒฐ์ ๋์ด์ง์ง ์๋๊ฒ์ ์๋ฏธํ๋ค.
์ด์ basefile์ ๋ค์ linktest ๋๋ ํ ๋ฆฌ๋ก ์ฎ๊ฒจ๋ณด์
๋ชจ๋ ๊ฒ ์ ์์ ์ผ๋ก ์ถ๋ ฅ๋จ์ ์ ์ ์๋ค.
์ฝ์ด๋ณด๋ฉด ์ข์ ๊ธ
https://mamu2830.blogspot.com/2019/07/blog-post.html?m=1
[์ด์์ฒด์ ] ํ์ผ ์์คํ , inode ๋ฐฉ์์ ๋ํ์ฌ (velog.io)