Linux 中的文件分為 Hard Link 和 Symbolic Link 兩種。Hard Link 文件又被稱為硬鏈接文件、實(shí)體鏈接文件,Symbolic Link 文件則常被稱為符號(hào)鏈接、軟鏈接文件。
ln 命令用來在文件之間建立鏈接。在介紹 ln 命令前,讓我們先來搞清楚究竟什么是硬鏈接,什么又是軟鏈接。
的目錄并同時(shí)刪除其內(nèi)容 rm -rf dir1 dir2 同時(shí)刪除兩個(gè)目錄及它們的內(nèi)容 mv dir1 new_dir 重命名/移動(dòng) 一個(gè)目錄 cp file1 file2 復(fù)制一個(gè)文件 cp dir/* . 復(fù)制一個(gè)目錄下的所有文件到當(dāng)前工作目錄 cp -a /tmp/dir1 . 復(fù)制一個(gè)目錄到當(dāng)前工作目錄 cp -a dir1 dir2 復(fù)制一個(gè)目錄 ln -s file1 lnk1 創(chuàng)建一個(gè)指向文件或目錄的軟鏈接 ln file1 lnk1 創(chuàng)建一個(gè)指向文件或目錄的物理鏈接 touch -t 0712250000 file1 修改一個(gè)文件或目錄的時(shí)間戳 - find / -name file1 從 '。binnagios 可執(zhí)行程序所在目錄etcnagios 配置文件所在目錄sbinnagios cgi 文件所在目錄,也就是執(zhí)行外部命令所需文件所在的目錄sharenagios網(wǎng)頁文件所在的目錄libexecnagios 外部插件所在目錄varnagios 日志文件、lock 等文件所在的目錄var/archivesnagios 日志自動(dòng)歸檔目錄var/rw用來存放外部命令文件的目錄。c/c++下sqlite編程參考文件:a introduction to the sqlite c/c++ interface找到安裝sqlite的路徑:我們的sqlite3的庫文件目錄是:/usr/local/sqlite3/lib //我的機(jī)子安裝目錄文件名是sqlite-3.3.6可執(zhí)行文件 sqlite3 的目錄是: /usr/local/sqlite3/bin頭文件 sqlite3.h 的目錄是: /usr/local/sqlite3/include編譯指南:現(xiàn)在編譯:[root@localhost dada]# gcc c3.c -o c3opendbsqlite.c:11:21: sqlite3.h:沒有那個(gè)文件或目錄opendbsqlite.c: in function `main':opendbsqlite.c:19: `sqlite3' undeclared (first use in this function)//這是由于沒有找到頭文件的原因。
也就是說,文件名存儲(chǔ)在目錄中,inode 號(hào)執(zhí)行文件存儲(chǔ)的內(nèi)容,文件名和 inode 之間有一個(gè)對(duì)應(yīng)關(guān)系。那么多個(gè)文件名可不可以同時(shí)指向同一個(gè) inode 呢?答案是可以的,這就是硬鏈接!從本質(zhì)上來說,硬鏈接只是在目錄下新添加了一個(gè)文件名,這個(gè)文件名與一個(gè)已有文件的 inode 相關(guān)聯(lián)。讓我們也通過 /etc/crontab 文件來進(jìn)行觀察:
$ ll -i /etc/crontab 131213 -rw-r--r-- 1 root root 722 Nov 16 2017 /etc/crontab
使用 ln 命令在當(dāng)前目錄下創(chuàng)建一個(gè) /etc/crontab 文件的硬鏈接,然后觀察其文件屬性:
$ sudo ln /etc/crontab . $ ll -i /etc/crontab crontab 131213 -rw-r--r-- 2 root root 722 Nov 16 2017 crontab 131213 -rw-r--r-- 2 root root 722 Nov 16 2017 /etc/crontab