В чем разница между структурой каталогов и файловой системой ?
Unix / Linux каталоги и файловая система выглядит следующим образом :
Следующие два каталога, очевидно, мы знаем каталоги.
/home/abc/xyzdir1 --is a directory
/home/abc/xyzdir2 -- is a directory
следующие три примера говорят о файловой системе.
/proc -- is a file system
/ -- is a file system
/bin -- is a file system
Как я могу определить, какая файловая система и каталог из приведенных выше фрагментов кода?
filesystems
directory-structure
proc
Premraj
источник
источник
/proc
,/
и/bin
из ваших примеров), поэтому я не понимаю, как вы хотите определить «разницу»./proc
,/
И/bin
каталоги. Они не "файловые системы". Возможно, вы хотите сказать, что хотите определить, какие каталоги также являются точкой монтирования (корнем) их файловой системы?Ответы:
Люди не используют файловую систему слишком осторожно. В своих примерах я хотел бы сказать , что
/
,/bin
и/proc
файловые системы , так как весь раздел (как/dev/sdb1
) монтируется на этих каталогах. Моя система Arch Linux не имеет/bin
файловой системы, поэтому этот пример не идеален, но ...Инод номер 2 традиционно является корневым инодом всей файловой системы на диске (что является другим использованием этой фразы).
/
,/boot
И/home
все они имеют инф.узлов номер 2, в то время/proc
, которое представлено исключительно ядром и не имеет присутствия на диске, имеет индексный дескриптор 1. Эти номера индексных дескрипторов показывает , что в целом, на диске файловой системы или виртуальной файловой системы монтируется под этим именем.Предложение «
/home/abc/xyzdir1
является каталогом» в основном означает, что ни одна файловая система на диске не смонтирована с этим именем. Если вы выполните ту жеls -lid
команду в каталоге, вы получите что-то вроде этого:Номер инода 3670039 - это то, из чего был выделен инод в файловой системе на диске, смонтированной (на моей машине) в
/home
.Вы также можете найти файловые системы, вызвав
mount
команду. В нем перечислены все смонтированные файловые системы и где они смонтированы.источник
/
,/bin
и/proc
файловые системы , так как весь раздел ... установлен на этих каталогах. Это не так/proc
, как следует из ответа позже.На риск чрезвычайно упрощения,
Так как меня попросили на бис,
Если вам нужен код, посмотрите первую половину этого ответа на Как определить, принадлежит ли файловая система Linux к работающей системе - часть, которая проверяет проверку
root_dir
. Он просто делает то, что сказал Брюс; проверка того, что это каталог, и проверка, является ли его номер индекса 1 или 2.источник
На мой взгляд, файловая система, в смысле UNIX, является способом реализации дерева каталогов (структуры каталогов) или, точнее, способом реализации API файловой системы UNIX. Корневая файловая система поддерживается одной конкретной реализацией, и всякий раз, когда вы вводите каталог точки монтирования, вы вводите поддерево, которое поддерживается чем-то другим.
Интерфейс всегда один и тот же, но в одном случае у вас есть определенный раздел диска на заднем конце, в другом случае будет программа, которая даже не записывает данные на устройство хранения.
proc
Файловая система будет поддержана программным обеспечением , который предоставляет Kernel внутренностей;tmpfs
будет подкреплено программным обеспечением , которое пишет в оперативную память, и другие файловых системы могут написать в сеть или в других местах.В не-UNIXY смысле слова файловая система - это способ организации хранения данных.
ext4
,btrfs
,fat
Иntfs
файловые системы в этом смысле, но и в UNIXy чувственные они реализуют API файловой системы.proc
не будет классифицироваться как файловая система в рамках этой более ограниченной парадигмы, поскольку она не организует хранение данных.TL; DR:
источник
Хотя принятие каталогов однозначно, когда речь идет о файловых системах, файловая система может означать разные вещи в зависимости от того, о чем вы говорите.
В ваших примерах все перечисленные пути являются каталогами, но только некоторые из них также являются точками монтирования файловых систем.
Вы можете использовать
df
команду, чтобы узнать, в какой файловой системе находится данный файл или каталог, иmount
команду в большинстве реализаций Unix и Linux, чтобы выяснить, какие файловые системы присутствуют на вашем компьютере, их тип и точки монтирования. например:Заявление
/bin
о файловой системе сомнительно,/bin
почти всегда смонтировано/
.источник
Сначала исправим ваше предположение о файловой системе и каталоге. Файловая система содержит один или несколько каталогов. Используя ваши примеры
/proc
,/
и/bin
каталоги. Они не являются «файловыми системами» сами по себе, но они могут быть корнем их соответствующих файловых систем.Если вы хотите определить, какие каталоги также являются точкой монтирования (корнем) их файловой системы, вы можете использовать что-то вроде этого:
источник
Файловая система - это методология логической организации и хранения больших объемов данных, так что системой легко управлять. Файловая система состоит из файлов, связей с другими файлами, а также атрибутов (тип файла, имя файла, размер файла, владелец файла, метка времени файла) каждого файла.
Каталоги : например, файловая система Unix в основном состоит из файлов и каталогов. Каталоги - это специальные файлы, которые могут содержать другие файлы. самый верхний каталог
/
(косая черта), с каталогами непосредственно под системными каталогами./
Корень файловой системы Linux/bin
Двоичные исполняемые файлы хранятся здесь/boot
Загрузка связанных файлов хранится здесь/dev
Файлы устройств хранятся здесь/etc
Общесистемные конфигурационные файлы хранятся здесь/home
Место для домашних каталогов постоянных пользователей/lib64
Здесь хранятся библиотеки для двоичных исполняемых файлов./mnt
Временная точка монтирования для DVD-Rom, флешка./opt
Дополнительные программы устанавливаются здесь как Program Files в Windows/proc
Псевдофайловая система ядра/root
Домашний каталог суперпользователя root/sbin
Системные двоичные исполняемые файлы хранятся здесь/tmp
Временные файлы хранятся здесь/usr
Пользовательская файловая система/var
Файлы переменных хранятся здесь/srv
это папка обслуживания, содержащая специфичные для сайта данные, которые обслуживаются этой системой.SRC и больше
Следующие два каталога являются пользовательскими каталогами:
источник
Если вам просто нужна команда, которая говорит вам, является ли путь каталогом или нет, используйте точку монтирования (1) .
Для меня это печатает
Хорошо, что статус выхода снова показывает то же самое, поэтому вы можете использовать его в своих скриптах следующим образом:
источник