Мне нужен независимый от платформы и легкий способ определения типа крепления моего CWD. В частности, мне нужно определить, находится ли мой CWD в монтированном SSHFS, NFS, CIFS, SMB или локальном хранилище блоков.
Мне нужно сделать это на Mac OSX 10.6, 10.7 и RHEL5 (как минимум).
Существует возможность использования df, но df ведет себя совершенно по-разному на этих двух платформах. Кроме того, мне бы пришлось CLI очистить свой вывод с помощью awk, который, хотя и выполнимый, хрупок.
Эта информация должна быть доступна на каком-то уровне. Есть ли инструмент, о котором я не знаю, который мог бы предоставить мне эту информацию?
источник
Вы можете использовать GNU stat в Linux:
источник
В Linux есть findmnt, доступный начиная с util-linux 2.18.
источник
Не проверял, но
df -P
должен вести себя одинаково на большинстве платформ.Это работает на Linux.
Или разбивая его на многократно используемые функции:
И вызывая функцию:
Может быть переписан, чтобы быть немного быстрее, используя
sed
илиawk
, но этот способ, вероятно, легче читать.Если это не сработает, вы можете попробовать что-то похожее, но использовать
/etc/mtab
вместо выводаmount
.источник
P
Вdf -P
для POSIX, поэтому он должен вести себя таким же образом. Однако переход от пути к файловой системе до точки монтирования более сложен.