日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件的软硬链接

發布時間:2025/3/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件的软硬链接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 文件的軟硬鏈接
    • 系統的鏈接文件
  • VIM編輯
    • vi和vim的區別
    • vim環境變量

文件的軟硬鏈接

系統的鏈接文件

文件有文件名和數據,在linux上被分為兩部分:用戶數據,元數據

用戶數據:文件的數據塊(data block),數據塊是記錄文件真實內容的地方,我們將其稱為block

元數據:文件的附加屬性,例如:文件大小,創建時間,屬組,屬主...等,我們稱其為Inode

在Linux中,inode是文件元數據的一部分,但其并不包含文件名,inode號即索引節點號

文件名僅是為了方便人們的記憶和使用,系統或者程序通過inode號尋找正確的文件數據塊。

下圖為文件讀取的流程:

軟鏈接

1什么是軟鏈接

軟鏈接相當于windows的快捷方式,軟鏈接文件會將inode指向源文件的block

注意:當我們訪問這個軟鏈接文件時,其實就是在訪問源文件的本身。
1.那么當我們對一個文件創建多個軟鏈接時,其實就是多個inode指向同一個block。
2.那么當我們刪除軟鏈接文件時,其實只是刪除了一個inode的指向,并不會對源文件造成影響。
3.如果我們刪除的是源文件,那么該文件的所有軟鏈接文件都會失效。

[root@db04 ~]# touch soft_link [root@db04 ~]# ln -s soft_link /tmp/soft_link [root@db04 ~]# ls -li soft_link /tmp/soft_link 662184 -rw-r--r-- 1 root root 0 6月 1 10:42 soft_link 915769 lrwxrwxrwx 1 root root 9 6月 1 10:42 /tmp/soft_link -> soft_link

軟鏈接的應用場景
  • 軟件升級
  • 代碼發布
  • 不方便移動的目錄
  • 數據回滾
  • 程序讀取

硬鏈接

  • 具有同一個inode號的文件,互為硬鏈接文件
  • 目錄不能創建連接
軟硬鏈接總結
  • 創建命令不同
    軟鏈接:ln -s
    硬鏈接:ln
  • 目錄不能創建硬鏈接,并且硬鏈接不可以跨越系統的分區,軟鏈接可以
  • 硬鏈接文件與源文件inode相同,軟鏈接文件與源文件inode不同
  • 刪除軟鏈接文件,對源文件無影響,但是刪除軟鏈接源文件對軟鏈接文件有影響
  • 刪除硬鏈接文件,對源文件也無影響,并且刪除源文件,對硬鏈接文件也無影響

企業面試題

當前磁盤空間還剩余500G,但是就無法往里面寫入數據,報錯,磁盤空間滿了。

1T磁盤,用戶數據把inode沾滿了

[root@db04 ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vg_db01-lv_root 1152816 76391 1076425 7% / tmpfs 238319 1 238318 1% /dev/shm /dev/sda1 128016 39 127977 1% /boot#模擬 [root@db04 ~]# dd if=/dev/zero of=/opt/disk bs=1K count=1024 [root@db04 ~]# mkfs.ext4 -i 1024 /opt/disk [root@db04 ~]# mkdir /data1 [root@db04 ~]# mount -t ext4 -o loop /opt/disk /data1 [root@db04 data1]# touch file{1..2000} touch: 無法創建"file1014": 設備上沒有空間 touch: 無法創建"file1015": 設備上沒有空間 touch: 無法創建"file1016": 設備上沒有空間 touch: 無法創建"file1017": 設備上沒有空間 touch: 無法創建"file1018": 設備上沒有空間 [root@db04 data1]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_db01-lv_root 18G 2.0G 15G 12% / tmpfs 931M 0 931M 0% /dev/shm /dev/sda1 485M 39M 421M 9% /boot /opt/disk 891K 39K 801K 5% /data1[root@db04 data1]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vg_db01-lv_root 1152816 76393 1076423 7% / tmpfs 238319 1 238318 1% /dev/shm /dev/sda1 128016 39 127977 1% /boot /opt/disk 1024 1024 0 100% /data1

硬鏈接數計算

[root@db04 ~]# mkdir hard [root@db04 ~]# ll hard -d drwxr-xr-x 2 root root 4096 6月 1 12:50 hard [root@db04 ~]# cd hard [root@db04 hard]# mkdir test1 [root@db04 ~]# ll -d hard drwxr-xr-x 3 root root 4096 6月 1 12:50 hard [root@db04 ~]# cd hard [root@db04 hard]# touch test [root@db04 ~]# ll -d hard drwxr-xr-x 3 root root 4096 6月 1 12:50 hard

VIM編輯

vi和vim的區別

  • vi不顯示高亮顏色語法
  • vim顯示高亮顏色語法
  • 其他功能沒有什么區別
  • 所以在linux系統下,使用vi還是vim取決個人習慣。

VIM模式介紹

vim編輯器配置文件整體流程如下:

  • 默認打開文件處于普通模式
  • 需要從普通模式切換至編輯模式
  • 編輯模式修改配置文件, 然后返回普通模式.
  • 最后通過普通模式進入末行模式,保存和退出操作.

注意

在vim中,無法直接從編輯模式切換到末行模式。

vim環境變量

環境變量臨時生效

  • :set nu 顯示行號
  • :set ic 忽略大小寫, 在搜索的時候有用
  • :set ai 自動縮進
  • :set list 顯示制表符(空行、tab鍵)
  • :set no[nu|ic|ai…] 取消臨時設定的變量

    環境變量永久生效

~/.vimrc 個人環境變量(優先級高) /etc/vimrc 全局環境變量 # vim ~/.vimrc set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 set number set autoindent set smartindent set tabstop=4 set shiftwidth=4 set ruler set incsearch set showmatch set matchtime=10 set ignorecase set cursorline set t_Co=256 colorscheme molokai#語法檢查及高亮 syntax on #設定默認解碼 set?fenc=utf-8? set?fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 #顯示行號 set?number? #vim使用自動對齊,也就是把當前行的對齊格式應用到下一行 set?autoindent? #依據上面的對齊格式,智能的選擇對齊方式 set?smartindent? #設置tab鍵為4個空格 set?tabstop=4? #設置當行之間交錯時使用4個空格 set?shiftwidth=4? #設置在編輯過程中,于右下角顯示光標位置的狀態行 set?ruler? #設置增量搜索,這樣的查詢比較smart set?incsearch? #高亮顯示匹配的括號 set?showmatch? #匹配括號高亮時間(單位為?1/10?s) set?matchtime=10? #在搜索的時候忽略大小寫 set?ignorecase? #禁止生成臨時 #set?nobackup? #當前行高亮 set?cursorline? #支持256色 set?t_Co=256? //如果個人vim環境沒有配置, 則使用全局vim環境變量配置。 //如果個人vim環境和全局環境變量產生沖突, 優先使用個人vim環境變量。

vim擴展知識

1.如何同時編輯多個文件
vim -o file1 file2 水平分割 vim -O file1 file2 垂直分割 //ctrl+ww 文件間切換
2.相同文件之間差異對比
diff vimdiff vim方式打開兩個文件對比,標記不同的內容
3.如果vim非正常退出(Ctrl+z)掛起或強制退出終端沒關閉vim
刪除同文件名.swp文件即可解決w 查看是否有人編輯 .filename.swap rm -f .filename.swp

轉載于:https://www.cnblogs.com/1naonao/p/11065943.html

總結

以上是生活随笔為你收集整理的文件的软硬链接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。