Je peux faire df .
pour obtenir certaines informations sur la monture dans laquelle se trouve le répertoire actuel, et je peux obtenir toutes les informations que je veux mount
, mais obtenir beaucoup d'informations (informations sur d'autres montures). Je peux le comprendre, mais je me demande s'il y a une meilleure façon.
Existe-t-il une commande mountinfo
telle que mountinfo .
donne les informations que je veux (comme df .
, mais avec les informations qui mount
donnent.)
J'utilise Debian Gnu + Linux.
filesystems
mount
disk-usage
ctrl-alt-delor
la source
la source
stat
commande peut également être utilisée. Cependant, je ne sais pas si l'%m
option qui donne le point de montage est prise en charge dans votre version du système. J'ai vérifié mon système et il ne semblait pas retourner le point de montage.stat "--printf=%m\n" .
obtient le point de montage du système de fichiers dans lequel se trouve le répertoire actuel. Cela nous permet ainsi de simplifier certaines des réponses. Merci.Réponses:
Je pense que vous voulez quelque chose comme ça:
Lors de l'utilisation de l'option
si le chemin n'est pas un fichier ou un répertoire de point de montage,findmnt
vérifie les éléments de chemin dans l'ordre inverse pour obtenir le point de montage. Vous ne pouvez imprimer que certains champs via-o, --output [list]
.Voir
findmnt --help
pour la liste des champs disponibles.Vous pouvez également exécuter:
Le problème que vous rencontrez est que tous les chemins sont relatifs à quelque chose ou autre, il vous suffit donc de parcourir l'arbre. À chaque fois.
findmnt
est membre du paquet util-linux depuis quelques années maintenant. À l'heure actuelle, quelle que soit votre distribution, elle devrait déjà être installée sur votre machine Linux si vous avez également l'mount
outil.findmnt
affichera toutes les informations des montages sans argument de point de montage, et uniquement celles de son argument avec un. C'est-D
l' option d' émulationdf
. Sans-D
sa sortie est similaire à celle demount
- mais beaucoup plus configurable. Essayez defindmnt --help
voir par vous-même.Je le colle dans un sous-shell afin que le répertoire actuel du shell actuel ne change pas.
Donc:
PRODUCTION
Si vous ne disposez pas de l'
-D
option (pas dans les anciennes versions d'util-linux), vous n'avez jamais à craindre - ce n'est en tout cas pas plus qu'un commutateur de commodité. Remarquez les en-têtes de colonne qu'il produit pour chaque appel - vous pouvez inclure ou exclure ceux pour chaque appel avec le-o
commutateur utput. Je peux obtenir la même sortie que celle-D
fournie:PRODUCTION
la source
-D
, je n'ai pas cette option. (Je suis sur Debian7, util-linux 2.20.1-5.3)df
- je suis prêt à parier qu'elle boucle, vous n'avez tout simplement pas à lui dire de le faire.findmnt $(stat "--printf=%m\n" .)
findmnt
possède une-T
option qui peut contourner lacd ..
boucle. Pourrait être utile à quelqu'un d'autre.La manière Linux / Unix est d'avoir une boîte à outils de petits utilitaires qui, lorsqu'ils sont combinés, vous donnent les résultats que vous recherchez.
Ils ont tendance à ne pas avoir d'utilité pour chaque occasion. Au lieu de cela, vous avez de nombreux petits utilitaires utiles qui sont combinés avec des tuyaux, etc. L'avantage de ceci est que vous pouvez écrire votre propre utilitaire assez facilement si aucun n'est disponible.
Par exemple, pour obtenir les informations que vous recherchez, vous pouvez utiliser:
Si vous souhaitez réutiliser ce qui précède avec différents répertoires, créez un script:
Enregistrez-le sous
mountinfo
et rendez-le exécutable (chmod +x mountinfo
). Vous pouvez ensuite l'utiliser comme:Si vous voulez un système qui a un utilitaire pour tout ce qui n'interagit pas entre eux, alors un certain Mr Gates peut être en mesure de vous aider ;-)
la source
--output
n'existe que dans les versions très récentes de coreutils GNU (≥8.22).mount
sans options semble un peu une réflexion après coup: avec les options que vous créez des points de montage, sans qu'il les répertorie, j'espérais un meilleur outil de liste. Comme nous le voyons, @mikeserv nous l'a montréfindmnt
.Cela peut être un peu compliqué si les points de montage contiennent des blancs, mais cela devrait fonctionner sauf dans les cas où les points de montage contiennent des sauts de ligne:
df -P
génère une ligne pour le système de fichiers; sans cette option,df
peut produire deux lignes si le point de montage est long. Le nom du point de montage commence dans la même colonne que le libellé "Monté sur" dans la ligne d'en-tête.Après avoir obtenu le point de montage, nous le recherchons dans la sortie de
mount
.la source
Je ne connais pas de commande, mais vous pouvez créer une fonction. Vous pouvez ajouter ce qui suit à votre
.bashrc
:Ceci exécute la
mount
commande et transmet la sortie àgrep
.grep
recherchera la sortie dedf -P "$1" | tail -n 1 | awk '{print $1}'
et la décomposera:df -P "$1"
s'exécuteradf
sur l'argument passé à la fonction,tail -n 1
affichera uniquement la deuxième ligne, celle qui contient lespartition
informations.awk '{print $1}'
affichera la première partie de cette ligne, qui est le numéro de disque / partition, par exemple/dev/sda5
. C'est ce quigrep
va chercher dans la commande mount et le sortir.Sourcez votre
.bashrc
fichier pour appliquer les modifications, ou déconnectez-vous et reconnectez-vous.Maintenant, si vous exécutez
mountinfo .
, vous obtiendrez la sortie souhaitée.la source
mount
sans aucune option semble un peu de une réflexion après coup: avec des options que vous créez des points de montage, sans qu'il les énumère, j'espérais un meilleur outil de liste. Comme nous le voyons, @mikeserv nous l'a montréfindmnt
.Si vous utilisez une version pas complètement ancienne du GNU coreutils df, alors ça
echo $(df . --output=target | tail -n 1)
marche. De même avecstat -c '%m' .
, bien que je note que https://linux.die.net/man/1/stat manque de documentation sur l'%m
option de format.Faire cela de manière portable est fastidieux: aucun des éléments ci-dessus ne fonctionnera avec les versions BSD ou Cygwin de stat ou df. S'il n'y avait pas la possibilité d'espaces dans les chemins des points de montage, ce
df -P . | tail -1 | awk '{ print $NF}'
serait bien, mais souvent les lecteurs flash USB ont des espaces dans le nom du volume, qui apparaîtront probablement dans le chemin de montage et casseront cela. Pour la portabilité, Perl est installable pratiquement partout et CPAN a le module Sys :: Filesystem :: MountPoint qui fournit les fonctionnalités souhaitées.la source
echo $()
ajoute à la commande?