中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux inode表示的是什么

發布時間:2023-04-20 10:39:41 來源:億速云 閱讀:130 作者:iii 欄目:建站服務器

今天小編給大家分享一下linux inode表示的是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

linux inode是用來標識操作系統的文件的一個特征描述;linux系統為每一個文件都分配了一個inode編號,這個編號中記錄了文件相關的一些元信息,通過這些元信息可以用來唯一標識一個文件。

linux inode是什么?

要了解 Linux 操作系統上的 inode 前,我們先來說說 Linux操作系統上的文件。對于 Linux 操作系統而言,[一切皆文件]。而文件是無法獨立于存儲介質(這里指的是物理磁盤或內存、閃存等)存在的,一切操作系統上的文件都無時無刻不在和存儲介質打交道。

例如,讀取文件時需要將文件從磁盤中加載到內存中,當文件操作結束后,文件又會被存儲到磁盤中。那么,既然文件要被存儲到磁盤中,而磁盤是有容量限制的,那么也就是說磁盤上能存放的物理文件的數量是有限的。

如果你已經理解了這一個觀點,那么恭喜你,你大體上已經知道了 inode 是干什么的。

沒錯,inode 是用來標識操作系統的文件的一個特征描述,而且操作系統上的 inode 并非無窮無盡,通常在你安裝操作系統后,系統上的 inode 數量就已經確定了下來(不過,你可以動態修改 inode 的數量)。

你可以通過 sysctl -a 查詢系統上的 inode 數量。

[root@server ~]# sysctl -a | grep inode
fs.inode-nr = 70212 21785

如上,fs.inode-nr 中的 70212 標識當前操作系統已分配的 inode 數量;21785 表示單前操作系統剩余空閑的 inode 數量

剛剛說過, inode 是用來標識文件的一個特征,這是為什么呢?

Linux 系統為每一個文件都分配了一個 inode 編號,這個編號中記錄了文件相關的一些元信息,通過這些元信息可以用來唯一標識一個文件。

你可以通過 ls -i 查看任意一個文件的 inode 編號

[root@server ~]# ls -i logrotate.man
8986710 logrotate.man

而要查看文件的元信息,你需要使用 stat {filename}

[root@server ~]# stat logrotate.man
  文件:"logrotate.man"
  大小:18033      塊:40         IO 塊:4096   普通文件
設備:fd00h/64768d Inode:8986710     硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:admin_home_t:s0
最近訪問:2021-11-25 03:20:39.497330998 -0500
最近更改:2021-11-24 04:38:17.781399647 -0500
最近改動:2021-11-24 04:38:17.797398907 -0500
創建時間:-

如上,即為一個文件的 inode 信息。這其中包含:

  • 大小:18033: 文件的字節數。這個文件占據的磁盤空間為 18033 Bytes

  • 塊:40:使用的 block(數據塊)。這個文件使用了 40 個物理塊

  • 權限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root):文件的權限及屬組信息。該文件為普通文件,權限為 0644,用戶和屬組都為 root

  • 最近訪問:2021-11-25 03:20:39.497330998 -0500:即 atime(最后一次訪問該文件的時間)

  • 最近更改:2021-11-24 04:38:17.781399647 -0500:即 mtime(最后一次修改文件的時間)

  • 最近改動:2021-11-24 04:38:17.797398907 -0500:即 ctime(最后一次改變文件(權限、屬組)的時間)

事實上,剛剛通過 stat logrotate.man 中還包括一個字段 硬鏈接:1。

為什么硬鏈接會出現在 inode 信息中?

一般情況下,操作系統中一個文件對應一個 inode ,但是這種規則卻不適用于 硬鏈接 文件。蓋因Linux操作系統上,允許多個文件指向同一個 inode 編號。

硬鏈接場景下,可以使用不同的文件名訪問同一個文件的內容,對文件內容、屬性等的修改會傳遞到其他文件。但刪除一個鏈接文件,并不影響其他文件的訪問。

例如,建立 logrotate.man 的硬鏈接文件

[root@server ~]# ln logrotate.man logrotate.man.1
[root@server ~]# ls -i logrotate.man*
8986710 logrotate.man  8986710 logrotate.man.1
# 可以看到,建立了硬鏈接的文件共用了同一個 inode 編號
[root@server ~]# stat logrotate.man
  文件:"logrotate.man"
  大小:18033      塊:40         IO 塊:4096   普通文件
設備:fd00h/64768d Inode:8986710     硬鏈接:2
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:admin_home_t:s0
最近訪問:2021-11-25 03:20:39.497330998 -0500
最近更改:2021-11-24 04:38:17.781399647 -0500
最近改動:2021-12-05 01:22:05.716611059 -0500
創建時間:-

建立硬鏈接后,通過 stat 可以看到 硬鏈接的數量變為 2 了。

這個時候我們刪除原始的鏈接文件,查看鏈接后的文件內容

[root@server ~]# rm -rf logrotate.man
[root@server ~]# tail -n 1 logrotate.man.1
Linux                                 Wed Nov 5 2002                                                                                                                 LOGROTATE(8)
[root@server ~]# stat logrotate.man.1
  文件:"logrotate.man.1"
  大小:18033      塊:40         IO 塊:4096   普通文件
設備:fd00h/64768d Inode:8986710     硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:admin_home_t:s0
最近訪問:2021-12-05 01:25:50.701384256 -0500
最近更改:2021-11-24 04:38:17.781399647 -0500
最近改動:2021-12-05 01:25:41.544800473 -0500
創建時間:-

刪除硬鏈接的原始文件后,可以成功讀取鏈接后的文件內容,此時,硬鏈接數量又變為了 1。

出現這種情況的原因在于,硬鏈接實際上是對文件增加了一個索引,這個索引指向文件的 inode 編號。當硬鏈接的數量大于 1 時,說明該文件除去自身外,還有多個硬鏈接。當硬鏈接的數量等于 0 時,此時操作系統已經沒有任何文件指向該 inode,也即是操作系統會回收 inode。

事實上,每刪除一個文件,是對該文件硬鏈接數的「減一」操作。當文件的硬鏈接數歸 0 時,這個文件會被操作系統徹底清除掉。

最后,通常情況下,操作系統分配的 inode 數量是完全夠用的,但出于一些程序或人為的意外可能會導致操作系統的 inode 溢出,你可以通過 df -ih 查看系統分區下 inode 的使用情況以便及時作出應對措施。

[root@server ~]# df -ih
文件系統                Inode 已用(I) 可用(I) 已用(I)% 掛載點
devtmpfs                 121K     390    121K       1% /dev
tmpfs                    124K       1    124K       1% /dev/shm
tmpfs                    124K     522    124K       1% /run
tmpfs                    124K      16    124K       1% /sys/fs/cgroup
/dev/mapper/centos-root  4.0M    129K    3.9M       4% /
/dev/vda1                512K     332    512K       1% /boot
tmpfs                    124K       1    124K       1% /run/user/0

以上就是“linux inode表示的是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长乐市| 南江县| 宜昌市| 百色市| 太白县| 波密县| 宾阳县| 兰考县| 望奎县| 鲁山县| 通化县| 米泉市| 桂东县| 武安市| 郴州市| 河北省| 内江市| 肃宁县| 永兴县| 冕宁县| 东乡族自治县| 恩施市| 张家川| 孟州市| 凤翔县| 库车县| 会理县| 尉氏县| 太和县| 开原市| 威宁| 合阳县| 富顺县| 太康县| 将乐县| 山西省| 南木林县| 新丰县| 四子王旗| 青河县| 无为县|