Парсинг вывода df
является лучшим, можно сделать портативно. Передача -P
кому: df
избегать его форматирующий вывод странным способом (Вы, вероятно, в безопасности везде, так как Вы захватываете первое поле, но Вам действительно нужно -P
захватить точку монтирования, поскольку это может быть понижено к последующей строке, если предыдущие столбцы слишком широки).
device_name=$(df -P . | awk 'NR==2 {print $1}')
Обратите внимание, что некоторые системы позволяют именам устройств содержать пробел (IIRC, который имеет тенденцию происходить на OSX). Нет никакого портативного или удобного способа обработать этот случай.
Я не думаю, что существует лучший способ сделать это в соответствии с Linux. stat
может дать Вам номер устройства (stat -c %t .
), но если Вы хотите запись устройства под /dev
, необходимо извлечь его из /proc
, который df
лучше в выполнении.
Есть еще более простой способ проверить наличие установленных программ. Вы можете проверить наличие любой установленной программы, набрав:
~$ which [program]
Итак, в этом случае
~$ which samba
Если она установлена, она дает вам ее местоположение. Если это не так, вы получите пустой вывод.
Используйте команду smbstatus
вы видите ниже. версия 3.6.23 -14.el6 _6 и статус вашего процесса samba и пользователя, группы и т.д...
В SMB версии 4.11.6 -Ubuntu выполните следующую команду:
sudo systemctl status smbd