2010-11-18 6 views

Respuesta

4

Puede verificar el tipo de sistema de archivos.

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

También puede comprobar si un directorio es un punto de montaje comparando su dispositivo con el de su padre.

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

Puede usar df, intente man df.

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

le dará el STH gusta:

Filesystem Mounted 
/dev/sda5 'some_dir' 

A continuación, puede añadir un cheque si el directorio 'some_dir' es igual a 'your_dir', y el sistema de ficheros es igual que la suya.

2

Algo como esto, mientras hacker, debe hacer el truco:

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

Lo cierto es que ... – cdhowie

0

Verificar/proc/mounts. Si grep en el nombre del sistema de archivos y la ruta que desea montar (tal vez incluso una línea específica con todas las opciones incluidas) puede decir si el sistema de archivos está montado.

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

Un virtual -1 para usar palos de fondo en una ubicación no trivial. – Sorpigal

+0

'if grep ...' - tampoco necesita paréntesis. –

37

Hay una herramienta específicamente para esto: punto de montaje (1)

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

Y que ni siquiera tiene que raspar cuerdas para hacerlo!

Tenga en cuenta que esta herramienta se encuentra en el paquete initscripts de Debian. Qué tan disponible está en otra parte no es algo que pueda comentar.

+0

Veo que mountpoint es parte del paquete sys-apps/util-linux de Gentoo Linux junto con más, mount, umount, dmesg y un montón de otras herramientas del sistema. Yo diría que esta es la solución más limpia. – cvolny

+1

@cvolny: Resulta que 'mountpoint' es parte de util-linux (específicamente la parte sys-utils) y probablemente esté disponible de una forma u otra en la mayoría de las distribuciones de Linux. Sin embargo, no forma parte de GNU y probablemente no esté disponible en sistemas que no sean Linux. – Sorpigal

+0

Parece que viene con RHEL 7.1 (ok, he instalado algunas cosas aquí.Así que no puedo estar seguro de eso) –

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

Sé que este hilo es viejo, pero ¿por qué no simplemente usar df y grep para la ruta requerida al punto de montaje? es decir:

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

grep devuelve verdadero si está montado, falso si no. Así que sólo tenemos que probarlo de esta forma:

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

Peasy fácil ...

+0

Decidí votar esta vez porque aunque mountpoint sería más fácil para la pregunta, esta respuesta es más flexible. Por ejemplo, algunas distribuciones de Linux montan tmpfs de memoria compartida en/tmp, mientras que otros utilizan/dev/shm o ambos. Esta respuesta hace que sea fácil darse cuenta de que puede decir si/tmp es memoria compartida o no de la misma manera: 'df/tmp | grep -q tmpfs && echo "Memoria compartida" || echo "No memoria compartida" O, más al punto 'df/tmp | grep -q tmpfs && tmp =/tmp || tmp =/dev/shm' –

-1

punto de montaje es mucho más elegante y se encuentra en sysvinit-tools CentOS 6 +++

Cuestiones relacionadas