一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【轉(zhuǎn)】linux cp(拷貝命令)ln(鏈接命令)實(shí)質(zhì)區(qū)別之我見(jiàn)

 techres 2012-05-24
linux cp(拷貝命令)與ln(鏈接命令)實(shí)質(zhì)區(qū)別之我見(jiàn)

        一開(kāi)始自己在網(wǎng)上也查了很多關(guān)于此方面的資料,但是沒(méi)有一個(gè)說(shuō)的能讓人徹底明白,徹底走出迷霧的。今天我將把自己更為清晰的簡(jiǎn)介說(shuō)出來(lái)供大家參考:

        在講這兩個(gè)命令之前,首先要給大家講一下Linux文件系統(tǒng)在磁盤(pán)分區(qū)中是如何存儲(chǔ)一個(gè)文件的。像Windows一樣,我把Linux文件系統(tǒng)存儲(chǔ)文件時(shí)也分為三大塊:inode,dir,data。inode在Linux中對(duì)應(yīng)一個(gè)文件或一個(gè)目錄,它主要是存儲(chǔ)文件的大小、創(chuàng)建時(shí)間、訪問(wèn)時(shí)間、數(shù)據(jù)的存儲(chǔ)位置等一系列信息。下面是Linux為inode定義的數(shù)據(jù)結(jié)構(gòu):

struct ext3_inode {
__u16 i_mode;    /* File mode */
__u16 i_uid;     /* Low 16 bits of Owner Uid */
__u32 i_size;    /* 文件大小,單位是 byte */
__u32 i_atime;   /* Access time */
__u32 i_ctime;   /* Creation time */
__u32 i_mtime;   /* Modification time */
__u32 i_dtime;   /* Deletion Time */
__u16 i_gid;     /* Low 16 bits of Group Id */
__u16 i_links_count;          /* Links count */
__u32 i_blocks;               /* blocks 計(jì)數(shù) */
__u32 i_flags;                /* File flags */
__u32 l_i_reserved1;          /* 可以忽略 */
__u32 i_block[EXT3_N_BLOCKS]; /* 一組 block 指針 */
__u32 i_generation;           /* 可以忽略 */
__u32 i_file_acl;             /* 可以忽略 */
__u32 i_dir_acl;              /* 可以忽略 */
__u32 i_faddr;                /* 可以忽略 */
__u8 l_i_frag;               /* 可以忽略 */
__u8 l_i_fsize;              /* 可以忽略 */
__u16 i_pad1;                 /* 可以忽略 */
__u16 l_i_uid_high;           /* 可以忽略 */
__u16 l_i_gid_high;           /* 可以忽略 */
__u32 l_i_reserved2;          /* 可以忽略 */
};

dir是存放文件名和inode ID對(duì)應(yīng)關(guān)系的地方。存儲(chǔ)每個(gè)對(duì)應(yīng)關(guān)系的數(shù)據(jù)結(jié)構(gòu)Linux中定義如下:

struct ext3_dir_entry_2 {
__u32 inode;    /* Inode 號(hào)數(shù) */
__u16 rec_len; /* Directory entry length */
__u8 name_len; /* Name length */
__u8 file_type;
char name[EXT3_NAME_LEN]; /* File name */
};

data也就是文件數(shù)據(jù)實(shí)實(shí)在在所存在的地方了。

那么接下來(lái)開(kāi)始進(jìn)入正題:

cp(拷貝命令):比如說(shuō)拷貝bing.txt。執(zhí)行"cp bing.txt chuan.txt"拷貝命令時(shí),系統(tǒng)會(huì)產(chǎn)生一個(gè)新inode,把bing.txt相關(guān)的信息填到這個(gè)inode里面。然后把bing.txt的數(shù)據(jù)拷貝到系統(tǒng)為chuan.txt所開(kāi)辟的空間里面。最后,把chuan.txt和新inode ID對(duì)應(yīng)起來(lái)放到dir里面。

ln(鏈接命令):

鏈接命令分為兩大塊:軟連接、硬鏈接;

軟連接(命令格式ln -s file1 file2):系統(tǒng)為file2產(chǎn)生一個(gè)新的inode,把file1的inode信息完全復(fù)制到file2的inode中去。然后在dir里面添加一個(gè)對(duì)應(yīng)關(guān)系:file2 <-----> file2的inode的ID。

硬鏈接(命令格式:ln [-d] file1 file2): 硬鏈接很簡(jiǎn)單,僅僅是產(chǎn)生一個(gè)file2<----->file1的inodeID 的對(duì)應(yīng)關(guān)系。所以說(shuō)硬鏈接很節(jié)省空間,而且它有一個(gè)很大的好處,那就是可以避免誤刪除帶來(lái)的損失。因?yàn)長(zhǎng)inux中刪除一個(gè)文件時(shí)首先把這個(gè)文件的inode中i_link_count(此變量為硬鏈接數(shù)。為什么沒(méi)有軟連接呢?因?yàn)檐涍B接只是完全復(fù)制源文件的inode的并不公用源文件的inode,他只是相當(dāng)于Windows中的快捷方式而已。)變量的值減一,然后判斷i_link_count是否為0,若是則刪除。否則不會(huì)刪除。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    国产av熟女一区二区三区四区| 免费在线观看欧美喷水黄片| 亚洲乱码av中文一区二区三区| 香蕉久久夜色精品国产尤物| 粉嫩国产一区二区三区在线| 久久青青草原中文字幕| 久久精品久久精品中文字幕| 国产三级黄片在线免费看| 免费午夜福利不卡片在线 视频| 五月的丁香婷婷综合网| 日本深夜福利视频在线| 精品欧美日韩一二三区| 不卡中文字幕在线视频| 国产欧美日韩在线精品一二区 | 一二区中文字幕在线观看 | 中文字幕一区二区免费| 色好吊视频这里只有精| 男生和女生哪个更好色| 久久99青青精品免费| 久久精品国产99精品最新| 99免费人成看国产片| 日韩国产精品激情一区| 国产欧美日产中文一区| 亚洲第一区二区三区女厕偷拍| 国产av一区二区三区四区五区| 国产精品国三级国产专不卡| 精品日韩视频在线观看| 美女露小粉嫩91精品久久久| 国产目拍亚洲精品区一区| 亚洲中文字幕在线观看黑人| 中文字幕五月婷婷免费 | 永久福利盒子日韩日韩| 欧美中文日韩一区久久| 日韩特级黄片免费观看| 国产目拍亚洲精品区一区| 好吊妞视频这里有精品| 91久久精品国产成人| 日本高清一区免费不卡| 欧美中文字幕日韩精品| 欧美野外在线刺激在线观看 | 黄片美女在线免费观看|