shell尋找符號連結及其指向目標的方法介紹

來源:互聯網
上載者:User

在類unix系統中,符號連結是很常見的,我們會碰到各種與符號連結相關的處理工作。
本文為大家介紹一些處理符號連結的實踐方法,希望對大家編寫shell指令碼時帶來一些協助,有需要的朋友不妨參考下。

1、符號連結可以看作是指向其它檔案的指標。它在功能上類似於Mac OS中的別名或windows中的捷徑,記住是類似,而非就是哦。
2、刪除符號連結不會影響到原始的檔案。

建立符號連結:
$ ln -s target symbolic_link_name

例如:
$ ln -s /var/www/ ~/web
這個命令在已登入使用者的home目錄中建立了一個名為web的符號連結。這個連結指向/var/www/。這些資訊可以從下面的命令輸出中看到:

複製代碼 代碼如下:$ ls web
lrwxrwxrwx 1 slynux slynux 8 2013-02-07 19:16 web -> /var/www

上面顯示資訊中的:web -> /var/www 表明web指向/var/www。

對於每個符號連結而言,許可權標記部分以字母"l"作為起始,表示這是一個符號連結。
因此,為了列印出目前的目錄下的符號連結,可以使用下面的命令:
$ ls -l | grep "^l" | awk '{print $8}'
grep對 ls -l 的輸出進行過濾,只顯示以l起始的那些行。^是字串起始標記。awk用來列印出第8列,也就是檔案名稱部分。

另一種方法是用find列印符號連結,如下所示:
$ find . -type l -print
在上面的命令中,將find命令的type參數指定為"l",告訴 find 只搜尋符號連結檔案。
-print 選項將符號連結列表列印到標準輸出(stdout)。而"."表示從目前的目錄開始搜尋。

使用下面的命令,可以列印出符號連結的指向目標:
$ ls -l web | awk '{print $10}'
/var/www
ls -l命令輸出的每一行都對應一個檔案的詳細資料。
ls -l web會將符號連結檔案web的詳細資料全部列出。輸出的第10列包含檔案指向的目標(如果這是一個符號連結的話)。
因此,為了找出與符號連結相關聯的目標,我們可以用awk列印出檔案的詳細列表(ls -l的輸出)的第10列。

另外,我們也可以用readlink命令來完成同樣的任務。某些時候,這是應該最優先考慮的用法,其用法如下:
$ readlink web
/var/www

好了,有關bash中建立與尋找符號連結的方法,就介紹到這了,希望對大家有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.