在類unix系統(tǒng)中,符號鏈接是很常見的,我們會碰到各種與符號鏈接相關(guān)的處理工作。
本文為大家介紹一些處理符號鏈接的實踐方法,希望對大家編寫shell腳本時帶來一些幫助,有需要的朋友不妨參考下。
1、符號鏈接可以看作是指向其它文件的指針。它在功能上類似于Mac OS中的別名或windows中的快捷方式,記住是類似,而非就是哦。
2、刪除符號鏈接不會影響到原始的文件。
創(chuàng)建符號鏈接:
$ ln -s target symbolic_link_name
例如:
$ ln -s /var/www/ ~/web
這個命令在已登錄用戶的home目錄中創(chuàng)建了一個名為web的符號鏈接。這個鏈接指向/var/www/。這些信息可以從下面的命令輸出中看到:
復(fù)制代碼 代碼如下:
$ ls web
lrwxrwxrwx 1 slynux slynux 8 2013-02-07 19:16 web -> /var/www
上面顯示信息中的:web -> /var/www 表明web指向/var/www。
對于每個符號鏈接而言,權(quán)限標(biāo)記部分以字母"l"作為起始,表示這是一個符號鏈接。
因此,為了打印出當(dāng)前目錄下的符號鏈接,可以使用下面的命令:
$ ls -l | grep "^l" | awk '{print $8}'
grep對 ls -l 的輸出進行過濾,只顯示以l起始的那些行。^是字符串起始標(biāo)記。awk用來打印出第8列,也就是文件名部分。
另一種方法是用find打印符號鏈接,如下所示:
$ find . -type l -print
在上面的命令中,將find命令的type參數(shù)指定為"l",告訴 find 只搜索符號鏈接文件。
-print 選項將符號鏈接列表打印到標(biāo)準(zhǔn)輸出(stdout)。而"."表示從當(dāng)前目錄開始搜索。
使用下面的命令,可以打印出符號鏈接的指向目標(biāo):
$ ls -l web | awk '{print $10}'
/var/www
ls -l命令輸出的每一行都對應(yīng)一個文件的詳細(xì)信息。
ls -l web會將符號鏈接文件web的詳細(xì)信息全部列出。輸出的第10列包含文件指向的目標(biāo)(如果這是一個符號鏈接的話)。
因此,為了找出與符號鏈接相關(guān)聯(lián)的目標(biāo),我們可以用awk打印出文件的詳細(xì)列表(ls -l的輸出)的第10列。
另外,我們也可以用readlink命令來完成同樣的任務(wù)。某些時候,這是應(yīng)該最優(yōu)先考慮的用法,其用法如下:
$ readlink web
/var/www
好了,有關(guān)bash中創(chuàng)建與查找符號鏈接的方法,就介紹到這了,希望對大家有所幫助。
您可能感興趣的文章:- shell腳本中一些特殊符號
- PowerShell在控制臺輸出特殊符號的方法
- PowerShell實現(xiàn)在控制臺中插入綠色的打勾符號
- Linux Shell中的特殊符號和含義簡明總結(jié)(包含了絕大部份)
- shell腳本中常見的一些特殊符號和作用詳解
- linux shell中的比較符號與特殊符號介紹
- 淺析shell腳本知識之符號篇