Como stat
devuelve un campo "Dispositivo", tenía curiosidad por ver cómo la stat()
llamada a la biblioteca subyacente podría usarse para obtener esta información mediante programación de una manera compatible con POSIX.
Este fragmento de código C:
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
int main (int argc, const char *argv[]) {
struct stat info;
stat(argv[1], &info);
printf("min: %d maj: %d\n",
minor(info.st_dev),
major(info.st_dev)
);
return 0;
}
Le dará las ID de los dispositivos principales y secundarios para el dispositivo que contiene el archivo que figura en la línea de comando ( argv[1]
). Desafortunadamente, major()
y minor()
no son POSIX, aunque la página del manual afirma que están "presentes en muchos otros sistemas" además de GNU / linux.
A continuación, puede obtener una correspondencia entre el número mayor / menor del dispositivo y el nodo del dispositivo, por ejemplo /proc/diskstats
, y asignarlo para montar puntos desde /proc/mounts
, también conocido como. /etc/mtab
.
Entonces, una utilidad de línea de comandos para hacer esto sería bastante simple.
tr
llamada final usandoawk -F'% '...