1. linux命令:搜索系統中的所有鏈接文件,並復制到主目錄中的link目錄中。
find / -type l -print >>out.txt這是查看所有的鏈接文件的,運行上面的命令後,可以查看#cat out.txt,就知道那些是鏈接文件了,也可以用#ls -l 加out.txt鏈接名來測試一下,至於如何復制到主目錄中的link目錄中,我就不太清楚了,不過你可以試試這個#find / -type l -print -ok cp {} \; /link
我回去試試看,再說!!
2. 2-18 Linux中的連接文件 --- 軟鏈接
Linux中的軟鏈接類似於windows中的快捷方式。
創建方式:ln -s oldfile newfile。
例:文件軟鏈接 (目錄軟鏈接也是一樣的操作方式)。
1、tmp 目錄下創建一個 test.txt 文件。
2、ln -s test.txt test,為 test.txt 文件創建一個名為 test 的軟鏈接。
3、ll 查看詳情會發現有一個藍色的 test --> test.txt (test 指向 test.txt)。同時文件類型是 l 開頭,l 是指鏈接文件的意思。
4、對軟鏈接文件進行 vim 操作。輸入This is ln -s test. :wq保存並退出。
5、通過cat test 和 cat test.txt 查看內容。得出的結果都是一樣的。既軟鏈接 test 和 test.txt 已經建立關聯,對 test 操作等於對 test.txt 操作。
tips:軟鏈接特點。
1、可以對不存在的文件創建軟鏈接。
tmp 目錄下除了 test 和 test.txt 並沒有其他文件。
此時 ln -s abc.txt t1,為不存在的 abc.txt 文件創建一個 t1 的軟鏈接。t1 軟鏈接是可以創建 的,只是由於沒有真實存在的 abc.txt 文件。通過 ll 查看詳情,系統會在 abc.txt 處用紅色閃 爍高光發出提示,意指abc.txt文件不存在。
此時,tmp 目錄下新建一個 abc.txt 文件,t1 軟鏈接到 abc.txt 文件就會正常。不會再有紅色 提示。
2、可以對文件 或者 目錄創建軟鏈接,目錄創建軟鏈接和文件創建軟鏈接流程一樣。
3、刪除軟鏈接,不會影響它的指向文件。
vim t1:編輯 t1 軟鏈接,輸入1 t1 的內容保存退出。
刪除 t1 軟鏈接,tmp 目錄下已沒有軟鏈接指向 abc.txt 文件。
此時,cat abc.txt 文件可以查看內容,也可以 vim abc.txt 增加 2 abc.txt 內容。證實了,刪 除軟鏈接,不會影響它的指向文件。
4、刪除了指向文件,該軟鏈接將變為無效連接。
當 t1 軟鏈接指向實際文件 abc.txt 的時候,t1是可以對 abc.txt 進行增刪改查操作的。若 rm - rf abc.txt 刪除了實質性的 abc.txt 文件後,t1 將不能做任何操作。失去了實質性文件而存在 的軟鏈接等同於創建一個空的軟鏈接效果一樣。
3. linux下查看軟鏈接的命令是什麼
用命令:ls -l 查看, 最前面有「l」的就是軟鏈接了,其他類型的文件都可以用這個命令看到。
4. Linux命令:搜索系統中的所有鏈接文件,並復制到主目錄中的link目錄中。
find
/
-type
l
-print
>>out.txt這是查看所有的鏈接文件的,運行上面的命令後,可以查看#cat
out.txt,就知道那些是鏈接文件了,也可以用#ls
-l
加out.txt鏈接名來測試一下,至於如何復制到主目錄中的link目錄中,我就不太清楚了,不過你可以試試這個#find
/
-type
l
-print
-ok
cp
{}
\;
/link
我回去試試看,再說!!
5. Linux中怎麼看出文件是硬連接
可以通過查詢文件的硬鏈接數來判斷,如果硬鏈接數大於1則說明文件是硬鏈接。
查看硬鏈接是可以使用命令「ls -l」,返回結果的第二列為硬鏈接數。
用法示例:
可以看到file1和file3的硬鏈接數都大於1,為硬鏈接。
值得注意的是,硬鏈接和源文件是無法區分的,兩個文件具有相同的大小、創建時間等信息。
6. linux怎麼將一個文件夾鏈接到另一個文件夾上
ln -s bbb的文件目錄 ccc的文件目錄
In的功能是為某一個文件在另外一個位置建立一個同步的鏈接,命令最常用的參數是-s,具體用法是:
ln -s 源文件 目標文件
-s 是 symbolic的意思。
ln的鏈接有軟鏈接和硬鏈接兩種。
軟鏈接就是ln -s ** **,只會在選定的位置上生成一個文件的鏡像,不會佔用磁碟空間。
硬鏈接ln
** **,沒有參數-s,在選定的位置上生成一個和源文件大小相同的文件。
無論是軟鏈接還是硬鏈接,文件都保持同步變化。軟鏈接是可以跨分區的,但是硬鏈接只能在同一分區內。
(6)linux查看鏈接文件擴展閱讀:
1、目錄不能建立硬鏈接,但可以建立軟鏈接。
ln-s
test_chk test_chk_ln
2、正確的刪除方式(刪除軟鏈接,但不刪除實際數據):
rm -rf ./test_chk_ln
3、錯誤的刪除方式:
rm -rf ./test_chk_ln/ (這樣就會把原來test_chk下的內容刪除)
4、用ls查看一個目錄時,發現有的文件後面有一個@的符號,那就是一個用ln命令生成的文件。用ls
-l命令去查看,就可以看到顯示的link的路徑。
7. linux如何打開鏈接文件
鏈接:一種在共享文件和訪問它的用戶的若干目錄項之間建立聯系的一種方法。
Linux中包括兩種鏈接:硬鏈接(Hard Link)和軟鏈接(Soft Link),軟鏈接又稱為符號鏈接(Symbolic link)。
我們首先來了解一下幾個名詞:
索引節點(inode)
要了解鏈接,我們首先得了解一個概念,叫索引節點(inode)。在Linux系統中,內核為每一個新創建的文件分配一個Inode(索引結點),每個文件都有一個惟一的inode號,我們可以將inode簡單理解成一個指針,它永遠指向本文件的具體存儲位置。文件屬性保存在索引結點里,在訪問文件時,索引結點被復制到內存在,從而實現文件的快速訪問。系統是通過索引節點(而不是文件名)來定位每一個文件。
硬鏈接(Hard Link)
硬鏈接說白了是一個指針,指向文件索引節點,系統並不為它重新分配inode。可以用:ln命令來建立硬鏈接。
引用
ln [options] existingfile newfile
ln [options] existingfile-list directory
用法:
第一種為」existingfile」創建硬鏈接,文件名為」newfile」。
第二種在」directory」目錄中,為」 existingfile-list」中包含的所有文件創建一個同名的硬鏈接。
常用可選[options]:-f 無論」newfile」存在與否,都創建鏈接。-n 如果」newfile」已存在,就不創建鏈接。
軟鏈接(Soft Link)
軟鏈接又叫符號鏈接,這個文件包含了另一個文件的路徑名。可以是任意文件或目錄,可以鏈接不同文件系統的文件。和win下的快捷方式差不多。
可以用:ln -s 命令來建立軟鏈接。
引用
ln -s existingfile newfile
ln -s existingfile-list directory
下面我們用一個實例來說明硬鏈接和軟鏈接。
現在目錄下有兩個文件,一個名為file1,一個名為file2。
引用
$ ls –il
1052671 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2007-03-29 13:46 file2
首先先做一個file1的硬鏈接。
引用
$ ln file1 file1hard
$ls –il
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:46 file12
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:46 file1hard
這里我們注意在創建鏈接前,file1顯示的鏈接數目為1,創建鏈接後
1.file1和file1hard的鏈接數目都變為2。
2.file1和file1的inode號是一樣的,都是1052671。
3.file1和file1hard顯示的文件大小也是一樣,都是0B。
可見進行了ln命令的操作結果:file1和file1hard是同一個文件的兩個名字,它們具有同樣的索引節點號和文件屬性,建立文件file1的硬鏈接,就是為 file1的文件索引節點在當前目錄上建立一個新指針。你可以刪除其中任何一個,如rm file1,每次只會刪除一個指針,鏈接數同時減一,只有將所有指向文件內容的指針,也即鏈接數減為0時,內核才會把文件內容從磁碟上刪除。
盡管硬鏈接節省空間,也是Linux系統整合文件系統的傳統方式,但是存在一些不足之處:
1.不允許給目錄創建硬鏈接。
2.不可以在不同文件系統的文件間建立鏈接。
接著我們做一個指向file2的軟鏈接,軟鏈接克服了硬鏈接的不足,沒有任何文件系統的限制,任何用戶可以創建指向目錄的符號鏈接。因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網路對文件進行鏈接。
引用
$ ln -s file2 file2soft
$ ls –il
總用量 0
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1
1052670 -rw-r--r-- 1 Leanx Leanx 0 2010-03-29 13:35 file2
1053313 lrwxrwxrwx 1 Leanx Leanx 5 2010-03-29 13:45 file2soft -> file2
1052671 -rw-r--r-- 2 Leanx Leanx 0 2010-03-29 13:34 file1hard
從上面鏈接後的結果可以看出來軟鏈接與硬鏈接,區別不僅僅是在概念上,在實現上也是完全不同的。
區別:
1.硬鏈接原文件/鏈接文件公用一個inode號,說明他們是同一個文件,而軟鏈接原文件/鏈接文件擁有不同的inode號,表明他們是兩個不同的文件;
2.在文件屬性上軟鏈接明確寫出了是鏈接文件,而硬鏈接沒有寫出來,因為在本質上硬鏈接文件和原文件是完全平等關系;
3.鏈接數目是不一樣的,軟鏈接的鏈接數目不會增加;
4.文件大小是不一樣的,硬鏈接文件顯示的大小是跟原文件是一樣的。而這里軟鏈接顯示的大小與原文件就不同了,file2大小是0B,而file2soft是5B。
總之,建立軟鏈接就是建立了一個新文件。當訪問鏈接文件時,系統就會發現他是個鏈接文件,它讀取鏈接文件找到真正要訪問的文件。
當然軟鏈接也有硬鏈接沒有的缺點,因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和保存原文件的路徑。
8. 查看linux系統中所有鏈接文件
find命令用於查找文件,格式為:「find [查找路徑] 尋找條件 操作」。
我在書中反反復復的提到「Linux系統中的一切都是文件」,接下來您就要感受到這份力量了。咱們在Linux系統中的搜索工作一般都是通過find命令來完成的,它可以根據不同的文件特性來做為匹配項(如文件名、大小、修改時間、許可權等信息),一旦匹配到了則會默認為用戶顯示到屏幕上來,基礎的匹配項目請見下表即可,我主要講解下「--exec」參數重要的作用,這個參數是用於將find命令搜索到的結果交由給後面的命令再進一步做處理,十分類似於咱們將在下一章中提到的管道符技術。
編輯
參數 作用
-name 匹配名稱
-perm 匹配許可權(mode為完全匹配,-mode為包含即可)
-user 匹配所有者
-group 匹配所有組
-mtime -n +n 匹配修改內容的時間(-n指n天以內,+n指n天以前)
-atime -n +n 匹配訪問文件的時間-n指n天以內,+n指n天以前
-ctime -n +n 匹配修改許可權的時間-n指n天以內,+n指n天以前
-nouser 匹配無所有者的文件
-nogroup 匹配無所有組的文件
-newer f1 !f2 匹配比文件f1新卻比f2舊的文件
--type b/d/c/p/l/f 匹配文件類型(塊設備、目錄、字元設備、管道、鏈接文件、文件文件)
-size 匹配文件的大小(+50k查找超過50k的文件,而-50k則代表查找小於50k的文件)
-prune 忽略某個目錄
-exec {} \; 後面可接對搜索到結果進一步處理的命令(下面會有演示)
Linux系統中的配置文件根據FHS協議會被保存到/etc目錄中(第六章精講),如果咱們要想獲取到該目錄中所有以host開頭的文件就可以這樣做:
[root@linuxprobe ~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/moles/active/moles/hostname.pp
/etc/hostname
想要在整個系統中搜索所有許可權中包括SUID許可權的文件(第五章精講),只需使用減號-4000即可:
[root@linuxprobe ~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl
參考:http://www.linuxprobe.com/chapter-02.html
9. linux如何查看一個文件是否存在軟鏈接
可以使用在該目錄下執行# ls
-all
如果存在指向符號,即可發現這個文件的鏈路和是否存在軟鏈接;