Apa perbedaan antara struktur direktori dan sistem file ? Direktori
Unix / Linux dan sistem file terlihat sebagai berikut:
Dua direktori berikut jelas kita tahu direktori.
/home/abc/xyzdir1 --is a directory
/home/abc/xyzdir2 -- is a directory
tiga sampel berikut mengatakan sistem file.
/proc -- is a file system
/ -- is a file system
/bin -- is a file system
Bagaimana saya bisa mengidentifikasi mana yang merupakan sistem file dan direktori dari potongan kode di atas?
filesystems
directory-structure
proc
Premraj
sumber
sumber
/proc
,,/
dan/bin
dari contoh Anda), jadi saya tidak jelas bagaimana Anda ingin mengidentifikasi "perbedaan"./proc
,/
dan/bin
direktori. Mereka bukan "sistem file". Apakah Anda mungkin bermaksud mengidentifikasi direktori mana yang juga merupakan titik mount (root) dari sistem file mereka?Jawaban:
Orang-orang tidak menggunakan sistem file terlalu hati-hati. Dalam contoh Anda, saya akan mengatakan itu
/
,/bin
dan/proc
sistem file karena seluruh partisi (seperti/dev/sdb1
) dipasang pada direktori tersebut. Sistem Linux Arch saya tidak memiliki/bin
sistem file sehingga contoh ini tidak sempurna tetapi ...Inode nomor 2 secara tradisional merupakan inode "root" dari keseluruhan sistem file pada disk (yang merupakan penggunaan lain dari frasa).
/
,/boot
dan/home
semua memiliki nomor inode 2, sementara/proc
, yang disajikan sepenuhnya oleh kernel dan tidak memiliki kehadiran di-disk, memiliki inode 1. Angka-angka inode menunjukkan bahwa keseluruhan, sistem file pada-disk, atau sistem file virtual dipasang menggunakan nama itu.Kalimat '
/home/abc/xyzdir1
adalah direktori "pada dasarnya berarti bahwa tidak ada sistem file pada disk yang dipasang menggunakan nama itu. Jika Anda melakukanls -lid
perintah yang sama pada direktori Anda mendapatkan sesuatu seperti ini:Nomor inode 3670039 adalah apa pun inode yang dialokasikan dari pada sistem file on-disk yang terpasang (pada mesin saya) di
/home
.Anda juga dapat menemukan sistem file dengan menjalankan
mount
perintah. Ini daftar semua sistem file yang terpasang dan di mana mereka dipasang.sumber
/
,/bin
dan/proc
sistem file karena seluruh partisi ... dipasang pada direktori tersebut. Ini tidak benar untuk/proc
, seperti jawabannya nanti.Dengan risiko terlalu menyederhanakan,
Karena saya telah diminta untuk ulangan,
Jika Anda ingin kode, lihat bagian pertama dari jawaban ini untuk Cara menentukan apakah sistem file Linux milik sistem yang berjalan - bagian yang melakukan validasi memeriksa
root_dir
. Itu hanya melakukan apa yang dikatakan Bruce; memverifikasi bahwa itu adalah direktori dan memeriksa apakah nomor inode-nya adalah 1 atau 2.sumber
Cara saya melihatnya, sistem file, dalam arti UNIX, adalah cara menerapkan pohon direktori (struktur direktori), atau lebih tepatnya, cara menerapkan API sistem file UNIX. Sistem file root didukung oleh satu implementasi tertentu, dan setiap kali Anda memasukkan direktori mountpoint, Anda memasukkan subtree yang didukung oleh sesuatu yang berbeda.
Antarmuka selalu sama, tetapi dalam satu kasus, Anda memiliki partisi disk tertentu di bagian belakang, dalam kasus lain, akan ada program yang bahkan tidak pernah menulis ke perangkat penyimpanan. Sistem
proc
file akan didukung oleh perangkat lunak yang mengekspos kernel internal; sebuahtmpfs
akan didukung oleh perangkat lunak yang menulis ke RAM, dan sistem file lain mungkin menulis ke jaringan atau di tempat lain.Dalam arti kata yang tidak UNIX, sistem file adalah cara mengatur penyimpanan data.
ext4
,btrfs
,fat
, Danntfs
adalah sistem file dalam pengertian ini, tetapi juga dalam UNIXy arti-mereka melaksanakan filesystem API.proc
tidak akan diklasifikasikan sebagai sistem file dalam paradigma ini, lebih terbatas, karena tidak mengatur penyimpanan data.TL; DR:
sumber
Sementara pengesahan direktori tidak ambigu ketika berbicara tentang sistem file, sistem file mungkin memiliki arti yang berbeda tergantung pada apa yang Anda bicarakan.
Dalam contoh Anda, semua jalur yang terdaftar adalah direktori tetapi hanya beberapa dari mereka yang juga me-mount poin sistem file.
Anda dapat menggunakan
df
perintah untuk mengetahui sistem file apa file atau direktori yang diberikan, danmount
perintah pada sebagian besar implementasi Unix dan Linux untuk mencari tahu sistem file apa yang ada pada mesin Anda, jenisnya dan titik pemasangannya. misalnya:Pernyataannya
/bin
adalah sistem file meragukan,/bin
hampir selalu dipasang/
.sumber
Pertama, koreksi asumsi Anda tentang sistem file dan direktori. Sistem file berisi satu atau lebih direktori. Menggunakan contoh Anda
/proc
,,/
dan/bin
direktori. Mereka bukan "filesystem" di dalam dan dari diri mereka sendiri, tetapi mereka mungkin adalah root dari masing-masing filesystem mereka.Jika Anda ingin mengidentifikasi direktori mana yang juga merupakan titik pemasangan (root) dari sistem berkasnya, Anda dapat menggunakan sesuatu seperti ini:
sumber
File System adalah metodologi untuk mengatur dan menyimpan data dalam jumlah besar secara logis sehingga sistemnya mudah dikelola. sistem file terdiri dari file, hubungan dengan file lain, serta atribut (tipe file, nama file, ukuran file, pemilik file, cap waktu file) dari setiap file.
Direktori : misalnya, sistem file Unix pada dasarnya terdiri dari file dan direktori. Direktori adalah file khusus yang mungkin berisi file lain. direktori teratas adalah
/
(slash), dengan direktori langsung di bawah direktori sistem./
Root dari Sistem File Linux/bin
File Biner Eksekusi disimpan di sini/boot
Booting file terkait disimpan di sini/dev
File perangkat disimpan di sini/etc
File konfigurasi di seluruh sistem disimpan di sini/home
Lokasi untuk direktori home dari pengguna biasa/lib64
Perpustakaan untuk executable biner disimpan di sini/mnt
Titik pemasangan sementara untuk DVD-Rom, USB flash drive./opt
Program opsional diinstal di sini seperti Program Files di windows/proc
Sistem file pseudo kernel/root
Direktori rumah root pengguna super/sbin
File System Binary Executable disimpan di sini/tmp
File sementara disimpan di sini/usr
Sistem File Pengguna/var
File variabel disimpan di sini/srv
adalah folder melayani, berisi data spesifik situs yang dilayani oleh sistem ini.src dan lebih banyak lagi
Dua direktori berikut adalah direktori yang ditentukan pengguna:
sumber
Jika Anda hanya memerlukan perintah yang memberi tahu Anda apakah path adalah direktori atau tidak, gunakan mountpoint (1) .
Bagi saya itu cetak
Yang bagus adalah bahwa status keluar menunjukkan hal yang sama lagi sehingga Anda dapat menggunakannya dalam skrip Anda seperti ini:
sumber