特定のディレクトリがマウントポイントであるかどうかを確認するには?たとえば、という名前のフォルダがあり、/test
それがマウントポイントであることを確認したいと思います。
答え1
ファイルシステムのマウントポイントを確認するには、mountpoint
次のコマンドを使用できます(ほとんどのLinuxベースのシステムでは)。
if mountpoint -q -- "$dir"; then
printf '%s\n' "$dir is a mount point"
fi
合計に同じデバイス番号(結果から)が.
あることを確認してください。したがって、そのコマンドがない場合は、次のことができます。..
st_dev
stat()
mountpoint
perl -le '$dir = shift; exit(1) unless
(@a = stat "$dir/." and @b = stat "$dir/.." and
($a[0] != $b[0] || $a[1] == $b[1]))' "$dir"
同様に、マウントポイントでなくても(たとえば、刑務所で)mountpoint
trueを返します。/
/
chroot
false
製本同じファイルシステムを独自にマウントします。
一方、mountpoint
シンボリックリンクの場合、シンボリックリンクのターゲットがマウントポイントであることを確認します。
答え2
HalosGhostがコメントで述べたように、ディレクトリ自体が必ずしもマウントされるわけではありません。代わりにインストールされたデバイスに存在します。これを確認するには、df
次のコマンドを使用できます。
$ df -h /boot/
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 99M 55M 40M 59% /boot
ここでは、ディレクトリがファイル/boot
システムの一部であることがわかります/dev/hda1
。これはシステムの物理デバイスであるHDDです。
mount
次のコマンドを使用して、システムに現在インストールされているデバイスを照会して、この問題を少し異なる方法で解決することもできます。
$ mount | column -t
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/mapper/lvm--raid-lvm0 on /export/raid1 type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
ここでは、現在システムにインストールされているデバイスタイプとファイルシステムタイプを表示できます。 3番目の列は、システムファイルシステムにインストールされている場所を示しています。
答え3
新しいXFSファイルシステムのインストールを確認しようとしても、同じ問題を探していました。
命令が見つかりました。発見する:findmnt /directoryname
[root@CentOS7-Server /]# findmnt /mnt
TARGET SOURCE FSTYPE OPTIONS
/mnt /dev/sdb1 xfs rw,relatime,seclabel,attr2,inode64,noquota
[root@CentOS7-Server /]#
答え4
素晴らしく短いPythonの1行コードは、以下に基づいて構築できます。ザイルズの答え:
$ python -c 'import os,sys;print(os.path.ismount(sys.argv[1]))' /mnt/HDD
True
$ python -c 'import os,sys;print(os.path.ismount(sys.argv[1]))' /etc
False
mountpoint
/proc/self/mounts
ファイルを解析するPythonコマンドの実装をカスタマイズしました。mount
コマンドを除いて、Stephaneの答えと同様の動作です/proc/self/mountinfo
。使用法は非常に簡単です: is_mountpoint.py /path/to/dir
。
#!/usr/bin/env python3
from os import path
import sys
def main():
if not sys.argv[1]:
print('Missing a path')
sys.exit(1)
full_path = path.realpath(sys.argv[1])
with open('/proc/self/mounts') as mounts:
print
for line in mounts:
if full_path in line:
print(full_path,' is mountpoint')
sys.exit(0)
print(full_path,' is not a mountpoint')
sys.exit(1)
if __name__ == '__main__':
main()
テスト実行:
$ python3 ./is_mountpoint.py /mnt/HDD
/mnt/HDD is mountpoint
$ lsblk | grep HDD
└─sdb6 8:22 0 405.3G 0 part /mnt/HDD
$ python3 ./is_mountpoint.py $HOME
/home/xieerqi is not a mountpoint