中文字幕视频在线看,亚洲精品无码久久久久av老牛,亚洲精品无码av片,亚洲av影院一区二区三区,亚洲国产精品成人久久久

如何在Linux中查看軟連接?有什么命令可以跟蹤軟鏈接指向?

如何在Linux中查看軟連接?有什么命令可以跟蹤軟鏈接指向?

Linux下的軟連接和硬鏈接


在 Linux 操作系統(tǒng)中鏈接會(huì)分兩種,一種被稱為硬鏈接,另一種被稱為符號(hào)鏈接,即軟鏈接。而默認(rèn)情況下,ln 命令產(chǎn)生的是硬鏈接。

Linux 軟硬鏈接

1. 如何查看inode

關(guān)于inode是什么,可以看這篇文章:Inode 詳解

bash

# 查看文件和文件夾的inode號(hào)
$ ll -di /boot / /app

# 查看掛載點(diǎn)文件夾的inode號(hào)
$ df -i

2. 做inode增長(zhǎng)實(shí)驗(yàn)

文件粉碎工具shred:shred -uzvn10 FILE重復(fù)隨機(jī)寫入 10 次覆蓋源文件,然后最后刪除此文件。

# 創(chuàng)建60萬(wàn)個(gè)文件的方法1(效率不高)
$ for i in {1..600000}; do touch file$1; echo file$i is created;done

# 創(chuàng)建60萬(wàn)個(gè)文件的方法2(效率高)
$ echo file{1..600000} | xargs touch

# 刪除前20萬(wàn)個(gè)文件
$ echo file{1..200000} | xargs rm

# 在創(chuàng)建的過程中,可以另開一個(gè)窗口,用下面命令,每隔1秒運(yùn)行df -hi命令,可以查看inode的增長(zhǎng)情況
$ watch -n1 df -hi

3. 硬鏈接、軟鏈接

軟鏈接

就相當(dāng)于 Windows 的快捷方式,刪掉源文件,快捷方式就失效了,軟鏈接就找不到源文件了。

硬鏈接

相當(dāng)于多個(gè)鏈接指向同一份數(shù)據(jù)存儲(chǔ)區(qū)域,每多一個(gè)硬鏈接,硬鏈接數(shù)+1,如果一個(gè)文件,有 n 個(gè)硬鏈接,刪除 n-1 個(gè)硬鏈接,源文件還在,直到刪除所有硬鏈接,才會(huì)刪除源文件。

1. 復(fù)制(cp)

  • 復(fù)制過程中,復(fù)制軟連接相當(dāng)于復(fù)制了快捷方式,速度很快,而且可以跨分區(qū)。
  • 復(fù)制過程中,復(fù)制硬鏈接分為兩種情形:在同一分區(qū)復(fù)制,相當(dāng)于多創(chuàng)建一個(gè)鏈接指向原數(shù)據(jù)存儲(chǔ)位置,速度很快。在不同分區(qū)復(fù)制,相當(dāng)于把原來分區(qū)的數(shù)據(jù)拷貝過去存儲(chǔ),同時(shí)創(chuàng)建一個(gè)指向新數(shù)據(jù)區(qū)域的指針,速度比較慢。

2. 刪除(rm)

  • 刪除過程中,刪除軟連接相當(dāng)于刪除了快捷方式,源文件還在。
  • 刪除過程中,刪除硬連接相當(dāng)于刪除了一個(gè)到數(shù)據(jù)塊的指針,除非刪除所有硬鏈接文件,源文件才刪除。

3. 移動(dòng)(mv)

  • 移動(dòng)過程中,移動(dòng)軟連接相當(dāng)于移動(dòng)了快捷方式而已。
  • 移動(dòng)過程中,移動(dòng)硬連接分為兩種情形:在同一分區(qū)移動(dòng),相當(dāng)于創(chuàng)建了一個(gè)新 inode,指向數(shù)據(jù)塊,并把原來的 inode 刪掉在不同分區(qū)移動(dòng),要把數(shù)據(jù)塊復(fù)制到新分區(qū),然后在新分區(qū)創(chuàng)建新的 inode 號(hào)指向新的數(shù)據(jù)塊,并且把原來分區(qū)的 inode 號(hào)和數(shù)據(jù)塊都刪掉。

4. 軟連接支持對(duì)目錄創(chuàng)建,硬鏈接不支持

【問題 1】:當(dāng)我們看到一個(gè)磁盤,使用空間沒滿,但是卻提示”no space left on device”

那可能是inode用完了

【問題 2】:如何刪除數(shù)量很多的文件(比如前面做實(shí)驗(yàn)創(chuàng)建的 60 萬(wàn)個(gè)文件)

技巧是使用管道|和xargs,管道|后面會(huì)講,管道是指的是前面命令的輸出作為后面命令的輸入。xargs,前面命令多個(gè)輸出,可以用xargs一個(gè)個(gè)的傳給后面的命令,而不是已下載全傳給后面命令,可以解決參數(shù)太長(zhǎng)的情況ls | xargs rm

# 創(chuàng)建不成功
ln dir1 dir2

# 創(chuàng)建成功
ln /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/ens33

5. 如何寫軟連接相對(duì)路徑

  • 軟連接寫相對(duì)路徑,要根據(jù)軟連接文件的路徑來寫。
# 例如要在把/etc/issue 軟連接到/app/d1/d2/d3/ilink
ln -s ../../../../../etc/issue /app/d1/d1/d3/ilink

6. 如何軟鏈接設(shè)備文件

  • 設(shè)備文件比較特殊,如果要?jiǎng)?chuàng)建設(shè)備文件的鏈接,需要用到mknod命令:
[root@centos7 etc]# ll /dev/sda
brw-rw----. 1 root disk 8, 0 May 22 09:06 /dev/sda #得到主設(shè)備號(hào)和復(fù)設(shè)備號(hào)。
mknod /app/sda b 8 0
ll -i /dev/sda /app/sda

軟鏈接練習(xí)

# 1.  創(chuàng)建一個(gè)目錄tomcat-8.5.23,創(chuàng)建一個(gè)軟連接tomcat到這個(gè)目錄;在創(chuàng)建一個(gè)目錄tomcat-9.0.1, 把tomcat的軟連接指向新的tomcat-9.0.1目錄。
ln -sv tomcat-8.5.23 tomcat
rm -rf tomcat
ln -sv tomcat-9.0.1 tomcat

# 2.  創(chuàng)建一個(gè)目錄/mnt/lfs/tools, 然后創(chuàng)建/mnt/lfs/tools的軟連接/tools,一般有這樣的命令:ln -sv /mnt/lfs/tools /tools,如何可以更短?
mkdir -v /mnt/lfs/tools
ln -sv /mnt/lfs/tools /

4. file 命令的使用

常用選項(xiàng)

  • -b?列出文件辨識(shí)結(jié)果時(shí),不顯示文件名稱
  • -f?列出文件中文件名的文件類型
  • -F?使用指定分隔符號(hào)替換輸出文件名后默認(rèn)的”:”分隔符
  • -L?查看對(duì)應(yīng)軟鏈接對(duì)應(yīng)文件的文件類型
  • –help?顯示命令在線幫助

注意事項(xiàng)

  • file命令就是查看的文件頭部的信息,可以用hexdump查看源文件源碼信息 (也可以用xxd命令看)。
  • 如果是二進(jìn)制文件,會(huì)顯示二進(jìn)制的頭信息。
  • 如果是文本文件,就直接是文本。
[root@centos7 ~]# hexdump -C -n 100 /bin/ls
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 3e 00 01 00 00 00 48 4b 40 00 00 00 00 00 |..>.....HK@.....|
00000020 40 00 00 00 00 00 00 00 18 c4 01 00 00 00 00 00 |@...............|
00000030 00 00 00 00 40 00 38 00 09 00 40 00 1e 00 1d 00 |....@.8...@.....|
00000040 06 00 00 00 05 00 00 00 40 00 00 00 00 00 00 00 |........@.......|
00000050 40 00 40 00 00 00 00 00 40 00 40 00 00 00 00 00 |@.@.....@.@.....|
00000060 f8 01 00 00 |....|
00000064

[root@centos7 ~]# hexdump -C -n 100 /etc/issue
00000000 5c 53 0a 4b 65 72 6e 65 6c 20 5c 72 20 6f 6e 20 |S.Kernel r on |
00000010 61 6e 20 5c 6d 0a |an m.|
00000016

5. readlink 命令

  • 讀取軟連接指向的真實(shí)路徑
[root@centos7 ~]$ readlink /etc/redhat-release
centos-release

文章作者:?Escape

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至2705686032@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。原文轉(zhuǎn)載: 原文出處:

(0)
云計(jì)算的頭像云計(jì)算
上一篇 2024 年 8 月 29 日 09:07
MySQL服務(wù)無(wú)法啟動(dòng)怎么辦?哪些常見原因?qū)е聠?dòng)失敗?
下一篇 2024 年 8 月 29 日 09:10

相關(guān)推薦

發(fā)表回復(fù)

登錄后才能評(píng)論

聯(lián)系我們

400-900-3935

在線咨詢: QQ交談

郵件:cong@zun.com

工作時(shí)間:365天無(wú)休服務(wù) 24小時(shí)在線

添加微信