Quelle est la meilleure façon de trouver des informations sur le système de fichiers d'un fichier.
Par exemple, si j'ai un fichier
/media/xyz/path/to/file.ext
Et /etc/fstab
contient
//server1/Share1 /media/xyz cifs option1=value1,...
Comment puis-je déterminer que le fichier se trouve sur un partage Samba, qu'il a le chemin local /path/to/file.ext
et avec quelles options le système de fichiers a été monté?
L'analyse de la sortie d' mount
une solution portable est-elle en cours? Ou analyser findmnt
? Existe-t-il un moyen conforme à POSIX pour y parvenir?
df /path/to/file
devrait montrer la partition ou le montage./proc/mounts
. Existe-t-il un moyen compatible BSD / OSX pour y parvenir?mount
etc. pour obtenir le système de fichiers et les options, etc. Je ne suis toujours pas sûr de la meilleure façon de trouver ces informations dans * BSD et OSX. Je n'ai pas eu le temps de travailler sur la bibliothèque qui l'exige, mais je ferai des commentaires une fois que je le ferai. D'après ce que j'ai vu,mount -P
semble assez fiable sur Linux / BSD.Réponses:
stat (1) est un moyen portable de trouver certaines de ces informations, par exemple:
Tout le reste est très spécifique au système d'exploitation, sur les systèmes Linux récents, vous pouvez facilement l'utiliser
findmnt --output
dans un script.la source
stat
est également spécifique à l'OS.si j'ai bien compris votre besoin et en combinant des extraits des réponses précédentes, ce qui suit pourrait être ce dont vous avez besoin. définir dans le script (par exemple, dans votre .bashrc) -
puis vous pouvez l'exécuter au besoin
la source
findmnt
n'a pas besoin de tout ça, il peut le faire tout seul