2

Как я могу проверить, находится ли какая-либо папка в Linux на общем диске или на локальном диске?

1 ответ1

2

Вы можете определить, находится ли папка на локальном диске, посмотрев тип файловой системы. Первая часть ответа - найти файловую систему, в которой находится папка. Для этого вам нужно найти файловую систему, используя поле st_dev stat информации для папки. (Вы также можете сделать это, проверив путь к папке, но затем вам придется проверить каждый элемент пути на наличие символических ссылок).

Затем вы можете сделать перекрестную ссылку на поле st_dev с таблицей монтирования в /proc/mounts mounts, используя getmntent_r(). Есть пример этого в предыдущем ответе. Поле mnt_type даст вам текст типа файловой системы, и вы можете сравнить строку со списком сетевых файловых систем.

Вы можете узнать больше информации о файловых системах FUSE, посмотрев в поле mnt_fsname , но есть много файловых систем FUSE. Вы можете рассматривать их как сетевое хранилище. Вы должны будете сделать свой собственный запрос о кластерных файловых системах, таких как GFS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .