2010-11-18 8 views

Antwort

4

Sie können den Typ des Dateisystems überprüfen.

Sie können auch überprüfen, ob ein Verzeichnis ein Mountpoint ist, indem Sie das Gerät mit dessen Eltern vergleichen.

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

Sie könnten df verwenden, versuchen Sie man df.

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

geben Ihnen gerne STH:

Filesystem Mounted 
/dev/sda5 'some_dir' 

Sie dann einen Scheck hinzufügen können, wenn das Verzeichnis ‚some_dir‘ ist gleich wie ‚your_dir‘ und Dateisystem ist wie bei Ihnen gleich.

2

So etwas wie dies, während hackish, sollte es tun:

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 
+0

Wohl wahr ... – cdhowie

0

prüfen/proc/mounts. Wenn Sie den Namen des Dateisystems und den gewünschten Pfad angeben (möglicherweise sogar eine bestimmte Zeile mit allen Optionen), können Sie feststellen, ob das Dateisystem angehängt ist.

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

Eine virtuelle -1 für die Verwendung von Backticks an einem nicht-trivialen Ort. – Sorpigal

+0

'if grep ...' - keine Notwendigkeit für Klammern auch nicht. –

37

Es ist ein Tool, das speziell für diese: einhängepunkt (1)

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

Und Sie haben nicht einmal Saiten zu kratzen, es zu tun!

Beachten Sie, dass ich dieses Tool in Debians initscripts Paket finde. Wie verfügbar es anderswo ist, kann ich nicht kommentieren.

+0

Ich sehe, dass Mountpoint ist Teil des Gentoo Linux sys-apps/util-linux-Paket zusammen mit mehr, mount, umount, dmesg und eine Reihe anderer System-Tools. Ich würde sagen, das ist die sauberste Lösung. – cvolny

+1

@cvolny: Es stellt sich heraus, dass 'mountpoint' ein Teil von util-linux ist (speziell der sys-utils-Teil) und wahrscheinlich in den meisten Linux-Distributionen auf die eine oder andere Weise verfügbar ist. Es ist jedoch nicht Teil von GNU und nicht wahrscheinlich auf Nicht-Linux-Systemen verfügbar. – Sorpigal

+0

Sieht so aus, als ob es mit RHEL 7.1 geliefert wird (err. Ok, ich habe hier ein paar Sachen installiert).Also kann ich mir da nicht sicher sein) –

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

Ich weiß, dass dieser Thread alt ist, aber warum nicht einfach df und grep für den erforderlichen Pfad zum Mountpoint verwenden? d. h. wie folgt:

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

grep gibt true zurück, wenn aktiviert, false, wenn nicht. Also müssen wir es einfach so testen:

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

Kinderleicht ...

+0

Ich habe mich entschieden dieses zu bewerten, denn obwohl mountpoint einfacher für die gestellte Frage ist, ist diese Antwort flexibler. Zum Beispiel mounten einige Linux-Distributionen Shared-Speicher-tmpfs unter/tmp, während andere/dev/shm oder beides verwenden. Diese Antwort macht es leicht zu erkennen, ob/tmp Shared Memory ist oder nicht: 'df/tmp | grep -q tmpfs && echo "Gemeinsamer Speicher" || echo "Nicht geteilter Speicher" Oder, mehr zu dem Punkt "df/tmp | grep -q tmpfs && tmp =/tmp || tmp =/dev/shm" –

-1

einhängepunkt ist viel eleganter und ist in sysvinit-Tools CentOS 6 +++