Jaka jest różnica między strukturą katalogów a systemem plików ? Katalogi i system plików
Unix / Linux wygląda następująco:
Następujące dwa katalogi oczywiście znamy katalogi.
/home/abc/xyzdir1 --is a directory
/home/abc/xyzdir2 -- is a directory
następujące trzy przykłady mówią system plików.
/proc -- is a file system
/ -- is a file system
/bin -- is a file system
Jak rozpoznać, który jest systemem plików i katalogiem z powyższych fragmentów kodu?
filesystems
directory-structure
proc
Premraj
źródło
źródło
/proc
, jak chcesz zidentyfikować „różnicę”./
/bin
/proc
,/
I/bin
są katalogi. Nie są to „systemy plików”. Czy może masz na myśli, że chcesz określić, które katalogi są również punktem montowania (root) ich systemu plików?Odpowiedzi:
Ludzie nie używają systemu plików zbyt ostrożnie. W twoich przykładów, chciałbym powiedzieć, że
/
,/bin
i/proc
są systemy plików, ponieważ cała partycja (jak/dev/sdb1
) jest zamontowany na tych katalogach. Mój system linuksowy Arch nie ma/bin
jako systemu plików, więc ten przykład nie jest idealny, ale ...I-węzeł numer 2 jest tradycyjnie i-węzłem „głównym” całego systemu plików na dysku (co jest innym zastosowaniem tego wyrażenia).
/
,/boot
A/home
wszystkie mają numer węzła 2, podczas/proc
, którego zaprezentowano całkowicie przez jądro i nie ma obecność na dysku, ma iwęzeł 1. Te numery iwęzłów wskazuje, że całość systemu plików na dysku, lub wirtualnego systemu plików jest montowany przy użyciu tej nazwy.Zdanie „
/home/abc/xyzdir1
jest katalogiem” oznacza w zasadzie, że żaden system plików na dysku nie jest zamontowany przy użyciu tej nazwy. Jeśli wykonasz to samols -lid
polecenie w katalogu, otrzymasz coś takiego:Numer i-węzła 3670039 jest dokładnie tym, z którego i-węzła został przydzielony w systemie plików na dysku zamontowanym (na moim komputerze) w
/home
.Można również znaleźć systemy plików, wywołując
mount
polecenie. Zawiera listę wszystkich zamontowanych systemów plików i miejsca ich zamontowania.źródło
/
,/bin
i/proc
są systemy plików, ponieważ cała partycja ... jest zamontowany na tych katalogach. Nie dotyczy to/proc
, jak sugeruje późniejsza odpowiedź.Ryzykując rażące uproszczenie,
Ponieważ zostałem poproszony o bis,
Jeśli potrzebujesz kodu, zapoznaj się z pierwszą połową odpowiedzi na pytanie, jak ustalić, czy system plików Linux należy do działającego systemu - część, która sprawdza poprawność
root_dir
. Po prostu robi to, co powiedział Bruce; sprawdzanie, czy jest to katalog i sprawdzanie, czy jego numerem i-węzła jest 1 czy 2.źródło
Z mojego punktu widzenia system plików, w sensie UNIX, to sposób implementacji drzewa katalogów (struktura katalogów), a ściślej sposób implementacja interfejsu API systemu plików UNIX. Główny system plików jest wspierany przez jedną konkretną implementację i za każdym razem, gdy wchodzisz do katalogu mountpoint, wchodzisz do poddrzewa, które jest wspierane przez coś innego.
Interfejs jest zawsze taki sam, ale w jednym przypadku masz określoną partycję dysku z tyłu, w innym przypadku będzie program, który nigdy nawet nie zapisuje na urządzeniu pamięci masowej. System
proc
plików będzie wspierany przez oprogramowanie, które ujawnia wewnętrzne elementy jądra;tmpfs
zostaną wsparte oprogramowaniem, który zapisuje do pamięci RAM i innych systemów plików może napisać do sieci lub poza nią.W znaczeniu innym niż UNIXy system plików to sposób organizacji przechowywania danych.
ext4
,btrfs
,fat
, Intfs
są systemy plików w tym sensie, ale także w UNIXy sens-one wdrożyć API systemu plików.proc
nie klasyfikowałby się jako system plików w ramach tego, bardziej ograniczonego, paradygmatu, ponieważ nie organizuje on przechowywania danych.TL; DR:
źródło
Podczas gdy akceptacja katalogu jest jednoznaczna w przypadku systemów plików, system plików może oznaczać różne rzeczy w zależności od tego, o czym mówisz.
W twoich przykładach wszystkie wymienione ścieżki są katalogami, ale tylko niektóre z nich są również punktami montowania systemów plików.
Możesz użyć
df
polecenia, aby dowiedzieć się, w jakim systemie plików jest dany plik lub katalog, orazmount
polecenia w większości implementacji systemów Unix i Linux, aby dowiedzieć się, jakie systemy plików są obecne na komputerze, ich typ i punkty montowania. na przykład:Stwierdzenie,
/bin
że system plików jest wątpliwy,/bin
prawie zawsze jest zamontowane/
.źródło
Najpierw popraw swoje założenia dotyczące systemu plików i katalogu. System plików zawiera jeden lub więcej katalogów. Korzystając z twoich przykładów
/proc
,/
i/bin
są katalogami. Nie są one same w sobie „systemami plików”, ale mogą być katalogiem głównym odpowiednich systemów plików.Jeśli chcesz określić, które katalogi są również punktem podłączenia (root) ich systemu plików, możesz użyć czegoś takiego:
źródło
System plików to metodologia logicznego organizowania i przechowywania dużych ilości danych, tak aby system był łatwy w zarządzaniu. system plików składa się z plików, relacji z innymi plikami, a także atrybutów (typ pliku, nazwa pliku, rozmiar pliku, właściciel pliku, znacznik czasu pliku) każdego pliku.
Katalogi : na przykład system plików Unix zasadniczo składa się z plików i katalogów. Katalogi to specjalne pliki, które mogą zawierać inne pliki. najwyższy katalog to
/
(ukośnik), z katalogami znajdującymi się bezpośrednio pod katalogami systemowymi./
Katalog systemu plików Linux/bin
Binarne pliki wykonywalne są tutaj przechowywane/boot
Pliki związane z ładowaniem są przechowywane tutaj/dev
Pliki urządzeń są tutaj przechowywane/etc
Przechowywane są tutaj systemowe pliki konfiguracyjne/home
Lokalizacja katalogów domowych zwykłych użytkowników/lib64
Tutaj przechowywane są biblioteki binarnych plików wykonywalnych/mnt
Tymczasowy punkt montażu dla napędu DVD-Rom, USB flash./opt
Programy opcjonalne są instalowane tutaj, podobnie jak Pliki programów w systemie Windows/proc
Pseudo-system plików jądra/root
Katalog domowy super root użytkownika/sbin
Systemowe pliki binarne są tutaj przechowywane/tmp
Pliki tymczasowe są tutaj przechowywane/usr
System plików użytkownika/var
Przechowywane są tutaj zmienne pliki/srv
to folder udostępniania, zawiera dane właściwe dla witryny, które są obsługiwane przez ten system.src i więcej
Następujące dwa katalogi są katalogami zdefiniowanymi przez użytkownika:
źródło
Jeśli potrzebujesz tylko polecenia informującego, czy ścieżka jest katalogiem, czy nie, użyj mountpoint (1) .
Dla mnie to drukuje
Dobrą rzeczą jest to, że status wyjścia ponownie wskazuje to samo, dzięki czemu można go używać w skryptach w następujący sposób:
źródło