En teoría stat
le indicará el dispositivo en el que se encuentra el archivo y debería haber alguna forma de asignar el dispositivo a un punto de montaje.
Por ejemplo, en Linux, esto debería funcionar:
stat -c '%m' $path
df
toma la ruta como parámetro, por lo que algo como esto debería ser bastante robusto;
df "$path" | tail -1 | awk '{ print $6 }'
Siempre he sido fanático de usar las opciones de formato de un programa, ya que puede ser más robusto que manipular la salida (por ejemplo, si el punto de montaje tiene espacios). GNU df
permite lo siguiente:
df --output=target "$path" | tail -1
Desafortunadamente, no veo ninguna opción para evitar la impresión de un encabezado, por lo que aún se requiere la cola.