Como stat
retorna um campo "Dispositivo", fiquei curioso para ver como a stat()
chamada de biblioteca subjacente poderia ser usada para obter essas informações programaticamente de maneira compatível com POSIX.
Este trecho 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;
}
Fornecerá os IDs principais e secundários do dispositivo que contém o arquivo listado na linha de comando ( argv[1]
). Infelizmente, major()
e minor()
não são POSIX, embora a página de manual afirme que eles estão "presentes em muitos outros sistemas" além do GNU / linux.
Você pode obter uma correspondência entre o número principal / menor do dispositivo e o nó do dispositivo, por exemplo /proc/diskstats
, e mapear isso para montar pontos /proc/mounts
, também conhecido como. /etc/mtab
.
Portanto, um utilitário de linha de comando para fazer isso seria bastante simples.
tr
chamada utilizandoawk -F'% '...