Jadual Kandungan
Kata Pengantar
inod
Pautan keras
软链接
对比
文件重命名或文件移动
文件删除
链接文件和文件夹
不同文件系统创建链接
应用场景
硬链接
总结
Rumah Operasi dan penyelenggaraan operasi dan penyelenggaraan linux Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

Feb 21, 2022 pm 05:50 PM
linux

Artikel ini membawa anda pengetahuan yang berkaitan tentang pautan keras dan pautan lembut dalam Linux, serta isu berkaitan inode saya harap ia akan membantu semua orang.

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

Kata Pengantar

Pengurus pakej hadapan pnpm sangat popular baru-baru ini, dan sejumlah besar artikel menganalisis prinsip pnpm. Setelah memahaminya, saya dapati keseluruhan seni bina pnpm disusun berdasarkan pautan keras dan pautan lembut, tetapi saya kabur tentang dua konsep ini, jadi saya ingin mengkajinya.

Seperti yang kita sedia maklum, segala-galanya dalam sistem Unix/Linux ialah fail. Ia dapat dilihat bahawa fail sangat penting dalam sistem Linux. Perasaan kami yang biasanya lebih intuitif tentang fail pastinya nama fail dan kandungan fail. Tetapi dalam sistem fail Linux, selain nama fail dan kandungan fail, terdapat juga konsep yang sangat penting, iaitu inode.

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

inod

Wikipedia menerangkan inod seperti ini:

inod (nod indeks) ialah struktur data dalam Unix sistem fail gaya yang menerangkan objek sistem fail seperti fail atau direktori Setiap inode menyimpan atribut dan lokasi blok cakera bagi atribut objek sistem fail mungkin termasuk metadata (masa perubahan terakhir, akses, pengubahsuaian ), serta data pemilik dan kebenaran.

Direktori ialah senarai inod dengan nama yang ditetapkan Senarai itu termasuk entri untuk dirinya sendiri, induknya dan setiap anaknya.

Ia bermaksud: inode ialah struktur data yang digunakan dalam sistem fail seperti Unix untuk menerangkan objek sistem fail (seperti fail atau folder). Ia menyimpan pelbagai atribut fail (maklumat meta seperti masa perubahan inod terakhir, masa akses terakhir, masa pengubahsuaian terakhir, dan maklumat kebenaran, dsb.). Folder ialah sekumpulan inod, termasuk kemasukannya sendiri, kemasukan nod induknya dan semua nod anak.

Malah, inode mengandungi lebih daripada yang di atas, khususnya:

  • Bilangan bait fail

  • bilangan bait ID Pengguna fail

  • ID Kumpulan fail

  • Baca, tulis dan laksanakan kebenaran fail

  • Cap masa: ctime, masa inod kali terakhir ditukar, masa apabila kandungan fail kali terakhir ditukar, masa fail dibuka terakhir

  • Bilangan pautan, iaitu berapa banyak fail yang ada Nama menunjukkan lokasi inod ini

  • blok data fail

Dalam sistem fail ext2/ext3 yang digunakan oleh Linux, jenis data yang berbeza disimpan di kawasan yang berbeza. Jadual inod yang terdiri daripada inod disimpan di satu lokasi, dan blok data fail disimpan di lokasi lain.

inode tidak mengandungi nama fail dan nama fail disimpan dalam struktur maklumat folder. Nama fail adalah bersamaan dengan alias inode, yang mudah untuk kita urus dan ingat. Sistem Linux beroperasi pada fail melalui inod Apabila kami mengubah suai fail, sistem mencari inode yang sepadan dengan nama fail daripada struktur maklumat folder, dan kemudian mencari inod yang sepadan melalui alamat blok data fail yang disimpan dalam inode. Operasi baca dan tulis dilakukan pada lokasi cakera keras.

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

Pautan keras

Secara amnya, inode mempunyai hubungan satu dengan satu dengan nama fail dan data fail, tetapi kita boleh menggunakan arahan shell untuk membuat berbilang Nama fail menghala ke inod yang sama, iaitu pautan keras.

Gunakan perintah ln untuk mencipta pautan keras, seperti

ln test.txt test_hard.txt
Salin selepas log masuk

yang sepadan dengan kaedah fs.link nodejs.

Sebelum mencipta pautan keras, test.txt boleh diwakili seperti berikut:

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

Selepas mencipta pautan keras:

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

Seperti yang anda lihat, inod test_hard.txt adalah sama dengan fail sumber test.txt, tetapi kini bilangan pautan telah menjadi 2.

Kami boleh melaksanakan ls -li untuk menyemaknya.

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

Lajur pertama ialah nombor inod Anda boleh melihat bahawa kedua-duanya ialah 13029546, jadi kedua-dua fail menggunakan inod yang sama. Lajur kedua ialah maklumat kebenaran, lajur keempat ialah pemilik, dan lajur keenam ialah saiz kandungan fail. Seperti yang anda lihat, kecuali untuk nama fail yang berbeza, fail yang dicipta oleh pautan keras mempunyai maklumat meta yang sama seperti fail sumber. Lajur ketiga menunjukkan bilangan pautan Seperti yang anda lihat, bilangan pautan semasa ialah 2.

Memandangkan fail pautan keras dan fail sumber menggunakan inod yang sama dan menghala ke blok data fail yang sama, semua maklumat kecuali nama fail adalah sama. Oleh itu, kedua-dua fail ini adalah setara dan boleh dikatakan sebagai fail pautan keras antara satu sama lain. Ubah suai mana-mana fail dan anda boleh melihat bahawa kandungan fail lain juga akan berubah serentak.

软链接

准确来说叫符号链接(symbolic link),一般又叫软链接(soft link)。与硬链接共用一个inode不同,软链接会创建新的inode,并指向源文件。可以理解软链接就是windows系统中的桌面快捷方式。

创建软链接的命令和硬链接很像,多了-s参数:ln -s

ln -s test.txt test_symbolic.txt
Salin selepas log masuk

对应的nodejs的fs.symlink方法。

创建软链接之后:

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

源文件inode的链接数还是1,创建了新的inode,软链接指向源文件。

执行ls -li看一下:

Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks)

可以看到,软链接的inode number跟源文件的不一样,权限一列开头为小写L,表示软链,链接数为1,大小为8个字节。没错,软链文件也有大小,不过一般很小,毕竟只是一个快捷方式。

对比

文件重命名或文件移动

文件重命名和文件移动对于Linux系统来说都是文件绝对路径的更改。对硬链接来说,文件重命名或文件移动不会改变链接指向,而对软链接来说,文件重命名或文件移动则使链接断开,这时通过软链接修改文件内容时会重新创建一个新的inode,跟原文件名和文件数据块关联。

文件删除

rm命令或者nodejs的unlink其实是将inode的链接数减1。对于前文的硬链接,删除test_hard.txt使得inode1的链接数变成1,当链接数变成0时,系统就会释放掉这个inode,之后再创建的新文件就可以使用该inode的inode number了。这时没有inode指向文件数据block,所以文件找不到了。但实际上文件数据还存在硬盘中,所以经常能看到网上有一些帮助恢复误删的文件的工具。软链接inode链接数为1,删除软链接则系统释放该inode。

链接文件和文件夹

软链接可以链接文件和文件夹,但硬链接只能链接文件。

不同文件系统创建链接

软链接可以跨不同的文件系统创建,但是硬链接不行,因为硬链接是共用一个inode,而不同的文件系统有不同的inode table。

应用场景

硬链接

  • 文件备份:为了防止重要的文件被误删,文件备份是一种好的办法,但拷贝文件会带来磁盘空间的消耗。硬链接能不占用磁盘空间实现文件备份。

  • 文件共享:多人共同维护同一份文件时,可以通过硬链接的方式,在私人目录里创建硬链接,每个人的修改都能同步到源文件,但又避免某个人误删就丢掉了文件的问题。

  • 文件分类:不同的文件资源需要分类,比如某个电影即是的分类是外国、悬疑,那我们可以在外国的文件夹和悬疑的文件夹里分别创建硬链接,这样可以避免重复拷贝电影浪费磁盘空间。有人可能说,使用软链接不也可以吗?是的,但不太好。因为一旦源文件移动位置或者重命名,软链接就失效了。

软链接

  • 快捷方式:对于路径很深的文件,查找起来不太方便。利用软链接在桌面创建快捷方式,可以迅速打开并编辑文件。

  • 灵活切换程序版本:对于机器上同时存在多个版本的程序,可以通过更改软链接的指向,从而迅速切换程序版本。这里提到了python版本的切换可以这么做。

  • 动态库版本管理:不是很懂,具体可以看这里。

总结

Linux系统通过inode管理文件,inode存储着文件字节数、文件权限、链接数、数据block位置等信息。

硬链接与源文件共用inode,除了文件名不同,其他与源文件一样。不能对文件夹创建硬链接,不能对不同的文件系统的文件创建硬链接。

软链接类似于windows的快捷方式,有独立的inode。可以对文件夹或不同文件系统的文件创建软链接。

硬链接和软链接修改文件内容都会同步到源文件,因为本质上它们都是指向源文件的数据block。

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci Membolehkan anda memahami pautan keras dan pautan lembut Linux (penjelasan terperinci dengan gambar dan teks). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbezaan antara centos dan ubuntu Perbezaan antara centos dan ubuntu Apr 14, 2025 pm 09:09 PM

Perbezaan utama antara CentOS dan Ubuntu adalah: asal (CentOS berasal dari Red Hat, untuk perusahaan; Ubuntu berasal dari Debian, untuk individu), pengurusan pakej (CentOS menggunakan yum, yang memberi tumpuan kepada kestabilan; Ubuntu menggunakan APT, untuk kekerapan yang tinggi) Pelbagai tutorial dan dokumen), kegunaan (CentOS berat sebelah ke arah pelayan, Ubuntu sesuai untuk pelayan dan desktop), perbezaan lain termasuk kesederhanaan pemasangan (CentOS adalah nipis)

CentOS berhenti penyelenggaraan 2024 CentOS berhenti penyelenggaraan 2024 Apr 14, 2025 pm 08:39 PM

CentOS akan ditutup pada tahun 2024 kerana pengedaran hulu, RHEL 8, telah ditutup. Penutupan ini akan menjejaskan sistem CentOS 8, menghalangnya daripada terus menerima kemas kini. Pengguna harus merancang untuk penghijrahan, dan pilihan yang disyorkan termasuk CentOS Stream, Almalinux, dan Rocky Linux untuk memastikan sistem selamat dan stabil.

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Cara memasang centos Cara memasang centos Apr 14, 2025 pm 09:03 PM

Langkah Pemasangan CentOS: Muat turun Imej ISO dan Burn Bootable Media; boot dan pilih sumber pemasangan; Pilih susun atur bahasa dan papan kekunci; Konfigurasikan rangkaian; memisahkan cakera keras; Tetapkan jam sistem; Buat pengguna root; pilih pakej perisian; Mulakan pemasangan; Mulakan semula dan boot dari cakera keras selepas pemasangan selesai.

Apakah kaedah sandaran untuk gitlab di centos Apakah kaedah sandaran untuk gitlab di centos Apr 14, 2025 pm 05:33 PM

Dasar sandaran dan pemulihan Gitlab di bawah sistem CentOS untuk memastikan keselamatan data dan pemulihan, Gitlab pada CentOS menyediakan pelbagai kaedah sandaran. Artikel ini akan memperkenalkan beberapa kaedah sandaran biasa, parameter konfigurasi dan proses pemulihan secara terperinci untuk membantu anda menubuhkan strategi sandaran dan pemulihan GitLab lengkap. 1. Backup Manual Gunakan Gitlab-Rakegitlab: Backup: Buat Perintah untuk Melaksanakan Backup Manual. Perintah ini menyokong maklumat utama seperti repositori Gitlab, pangkalan data, pengguna, kumpulan pengguna, kunci, dan kebenaran. Fail sandaran lalai disimpan dalam direktori/var/opt/gitlab/sandaran. Anda boleh mengubah suai /etc /gitlab

Cara memasang cakera keras di centos Cara memasang cakera keras di centos Apr 14, 2025 pm 08:15 PM

Centos Hard Disk Mount dibahagikan kepada langkah -langkah berikut: Tentukan nama peranti cakera keras (/dev/sdx); Buat titik gunung (disyorkan untuk menggunakan /mnt /newdisk); laksanakan perintah gunung (mount /dev /sdx1 /mnt /newdisk); Edit fail /etc /fstab untuk menambah konfigurasi gunung tetap; Gunakan perintah UMount untuk menyahpasang peranti untuk memastikan bahawa tiada proses menggunakan peranti.

Apa yang Harus Dilakukan Setelah CentOs Berhenti Penyelenggaraan Apa yang Harus Dilakukan Setelah CentOs Berhenti Penyelenggaraan Apr 14, 2025 pm 08:48 PM

Selepas CentOS dihentikan, pengguna boleh mengambil langkah -langkah berikut untuk menanganinya: Pilih pengedaran yang serasi: seperti Almalinux, Rocky Linux, dan CentOS Stream. Berhijrah ke pengagihan komersial: seperti Red Hat Enterprise Linux, Oracle Linux. Menaik taraf ke CentOS 9 Stream: Pengagihan Rolling, menyediakan teknologi terkini. Pilih pengagihan Linux yang lain: seperti Ubuntu, Debian. Menilai pilihan lain seperti bekas, mesin maya, atau platform awan.

See all articles