¿Cómo obtener información del sistema de archivos para un archivo específico?

¿Cómo obtener información del sistema de archivos para un archivo específico?

¿Cuál es la mejor manera de obtener información del sistema de archivos sobre un archivo?

Por ejemplo, si tengo un archivo

/media/xyz/path/to/file.ext

y /etc/fstabcontiene

//server1/Share1 /media/xyz cifs option1=value1,...

¿Cómo puedo determinar que el archivo está en un recurso compartido Samba, que tiene la ruta local /path/to/file.exty con qué opciones se montó el sistema de archivos?

¿Analizar el resultado de mountuna solución portátil? ¿O analizar findmnt? ¿Existe alguna forma compatible con POSIX de lograrlo?

Respuesta1

stat(1) es una forma portátil de encontrar parte de esta información, por ejemplo:

stat --file-system --format="%T" /media/xyz/path/to/file.ext

Todo lo demás es muy específico del sistema operativo; en los sistemas Linux recientes se puede utilizar fácilmente findmnt --outputen un script.

Respuesta2

Si entendí su necesidad correctamente y combiné partes de respuestas anteriores, lo siguiente podría ser lo que necesita. definir en script (por ejemplo, en su .bashrc)-

findpart ()
{
df -h $1|sed 1d|cut -d" " -f1|xargs findmnt -n
}

y luego puedes ejecutarlo según sea necesario

findpart /foo/file.ext

información relacionada