Shell script знать, установлена ​​ли файловая система

У меня есть файловая система tmpfs, установленная в определенном каталоге. Я хочу написать оболочку script, чтобы проверить, установлена ​​ли файловая система tmpfs в каталоге.

Ответ 1

Вы можете проверить тип файловой системы.

$ stat -f -c '%T' /
xfs
$ stat -f -c '%T' /dev/shm
tmpfs

Вы также можете проверить, является ли каталог точкой монтирования, сравнивая ее устройство с родительским.

$ stat -c '%D' /
901
$ stat -c '%D' /home
fe01
$ stat -c '%D' /home/$USER
fe01

Ответ 2

Для этого используется инструмент: mountpoint (1)

if mountpoint -q "$directory" ; then
    echo it is a mounted mountpoint
else
    echo it is not a mounted mountpoint
fi

И вам даже не нужно царапать струны, чтобы сделать это!

Обратите внимание: я нахожу этот инструмент в пакете initscripts Debian. Насколько это доступно в других местах, я не могу комментировать.

Ответ 3

Что-то вроде этого, в то время как хакерское, должно сделать трюк:

FS_TO_CHECK="/dev" # For example... change this to suit your needs.

if cat /proc/mounts | grep -F " $FS_TO_CHECK " > /dev/null; then
    # Filesystem is mounted
else
    # Filesystem is not mounted
fi

Ответ 4

Я знаю, что этот поток старый, но почему бы просто не использовать df и grep для нужного пути к точке монтирования? то есть следующим образом:

df /full/path | grep -q /full/path

grep возвращает true, если установлен, false, если нет. Поэтому нам просто нужно проверить это следующим образом:

df /mnt/myUSBdisk | grep -q /mnt/myUSBdisk && echo "Mounted" || echo "Not mounted"

Легкий peasy...

Ответ 5

Вы можете использовать df, попробуйте man df.

df 'directory' | awk '{print $1, $6}'

даст вам следующее:

Filesystem Mounted
/dev/sda5  'some_dir'

Затем вы можете добавить проверку, если каталог "some_dir" совпадает с "your_dir", а файловая система такая же, как ваша.

Ответ 6

Проверить/proc/mounts. Если вы указали имя файловой системы и путь, который хотите установить (возможно, даже определенную строку со всеми включенными опциями), вы можете определить, установлена ​​ли файловая система.

if [ "`grep "tmpfs /lib/init/rw tmpfs rw,nosuid,mode=755 0 0" /proc/mounts`" != "" ]
then
  echo Mounted.
else
  echo Not mounted.
fi

Ответ 7

if mount -l -t tmpfs | grep "on $directory "
then
    echo "it mounted"
fi

Ответ 8

mountpoint намного более изящна и находится в sysvinit-tools CentOS 6 +++