¿Cuál es la mejor manera de averiguar la información del sistema de archivos sobre un archivo?
Por ejemplo, si tengo un archivo
/media/xyz/path/to/file.ext
Y /etc/fstab
contiene
//server1/Share1 /media/xyz cifs option1=value1,...
¿Cómo puedo determinar que el archivo está en un recurso compartido de Samba, que tiene la ruta local /path/to/file.ext
y con qué opciones se montó el sistema de archivos?
¿Está analizando la salida de mount
una solución portátil? O analizar findmnt
? ¿Hay alguna forma compatible con POSIX para lograr eso?
df /path/to/file
debería mostrar la partición o montaje./proc/mounts
. ¿Hay alguna forma compatible con BSD / OSX para lograr lo mismo?mount
etc. para obtener el sistema de archivos y las opciones, etc. Todavía no estoy seguro de la mejor manera de encontrar esta información en * BSD y OSX. No he tenido tiempo de trabajar en la biblioteca que requiere esto, pero recibiré comentarios una vez que lo haga. Por lo que vi,mount -P
parece bastante confiable en Linux / BSD.Respuestas:
stat (1) es una forma portátil de encontrar parte de esta información, por ejemplo:
Todo lo demás es muy específico del sistema operativo, en sistemas Linux recientes que puede usar fácilmente
findmnt --output
en un script.fuente
stat
También es os-específico.Si entendí su necesidad correctamente, y combinando bits de respuestas anteriores, lo siguiente podría ser lo que necesita. definir en script (por ejemplo, en su .bashrc)
y luego puedes ejecutarlo según sea necesario
fuente
findmnt
no necesita todas esas cosas, puede hacerlo todo por sí mismo