20

特定のディレクトリにtmpfsファイルシステムをマウントしています。tmpfsファイルシステムがすでにディレクトリにマウントされているかどうかを確認するシェルスクリプトを作成したいと思います。

4

8 に答える 8

53

これ専用のツールがあります: mountpoint(1)

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

そして、それを行うために弦をこする必要さえありません!

このツールは Debian の initscripts パッケージに含まれていることに注意してください。他の場所でどの程度利用できるかは、私がコメントできるものではありません.

于 2010-11-18T19:11:52.013 に答える
5

ファイルシステムのタイプを確認できます。

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

ディレクトリのデバイスを親のデバイスと比較して、ディレクトリがマウントポイントであるかどうかを確認することもできます。

$ stat -c '%D' /
901
$ stat -c '%D' /ホーム
fe01
$ stat -c '%D' /home/$USER
fe01
于 2010-11-19T02:46:36.977 に答える
4

このようなものは、ハック的ですが、トリックを行う必要があります:

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

if grep -F " $FS_TO_CHECK " /proc/mounts > /dev/null; then
    # Filesystem is mounted
else
    # Filesystem is not mounted
fi
于 2010-11-18T07:34:21.807 に答える
2

このスレッドが古いことは知っていますが、マウントポイントへの必要なパスに df と grep を使用しないのはなぜですか? つまり、このように:

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

grep は、マウントされている場合は true を返し、マウントされていない場合は false を返します。したがって、次のようにテストする必要があります。

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

簡単にピージー...

于 2013-07-21T16:20:58.653 に答える
1

使用できますdf、試してみてくださいman df

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

あなたに次のようなsthを与えるでしょう:

Filesystem Mounted
/dev/sda5  'some_dir'

次に、ディレクトリ'some_dir'が'your_dir'と同じであり、ファイルシステムがyoursと同じであるかどうかのチェックを追加できます。

于 2010-11-18T07:33:23.870 に答える
0

/ proc/mountsを確認してください。ファイルシステム名とマウントするパス(すべてのオプションが含まれている特定の行でさえ)をgrepすると、ファイルシステムがマウントされているかどうかがわかります。

if [ "`grep "tmpfs /lib/init/rw tmpfs rw,nosuid,mode=755 0 0" /proc/mounts`" != "" ]
then
  echo Mounted.
else
  echo Not mounted.
fi
于 2010-11-18T07:34:47.470 に答える
0
if mount -l -t tmpfs | grep "on $directory "
then
    echo "it's mounted"
fi
于 2010-11-18T21:15:39.760 に答える
-3

マウントポイントははるかにエレガントで、sysvinit-tools CentOS 6+++ にあります。

于 2016-07-26T16:54:26.513 に答える