web-dev-qa-db-fra.com

Mont Info pour le répertoire actuel

Je peux faire df . Pour obtenir certaines des informations sur la monture que le répertoire actuel est dans et que je peux obtenir toutes les informations que je veux de mount. Cependant, je reçois beaucoup d'informations (informations sur d'autres supports). Je peux le grep, mais je me demande s'il y a une meilleure façon.

Y a-t-il une commande mountinfo tel que mountinfo . donne des informations que je veux (comme df ., mais avec l'info que mount donne.)


J'utilise Debian Gnu + Linux.

25
ctrl-alt-delor

La manière Linux/Unix est d'avoir une boîte à outils de petits utilitaires qui, lorsqu'elles sont combinées, vous donnent les résultats que vous après.

Ils ont tendance à ne pas avoir d'utilité pour chaque occasion. Au lieu de cela, vous avez de nombreux petits utilitaires utiles combinés avec des tuyaux, etc. L'avantage est que vous pouvez écrire votre propre utilité assez facilement si aucun n'est disponible.

Par exemple, pour obtenir les informations que vous après, vous pouvez utiliser:

mount | grep $(df  --output=source . | tail -1)

Si vous souhaitez réutiliser ce qui précède avec différents répertoires, créez un script:

#!/bin/bash
mount | grep $(df  --output=source $1 | tail -1)

Enregistrez-le comme mountinfo et le rendre exécutable (chmod +x mountinfo). Vous pouvez ensuite l'utiliser comme suit:

mountinfo .

Si vous souhaitez un système qui a une utilité pour tout ce dont aucun interopère l'un avec l'autre, une certaine M. Gates peut être capable de vous aider ;-)

1
garethTheRed

Je ne connais pas d'une commande, mais vous pouvez créer une fonction. Vous pouvez ajouter ci-dessous à votre .bashrc:

mountinfo () {
  mount | grep $(df -P "$1" | tail -n 1 | awk '{print $1}')
}

Cela exécute la commande mount et transmet la sortie à grep. grep cherchera la sortie de df -P "$1" | tail -n 1 | awk '{print $1}', et pour le casser:

  • df -P "$1" va courir df sur l'argument passé à la fonction,
  • tail -n 1 ne produira que la deuxième ligne, celle qui contient l'info partition.
  • awk '{print $1}' Imprimera la première partie de cette ligne, qui est le numéro de disque/partition, par exemple /dev/sda5. C'est ce que grep va chercher dans la commande de montage et la sortir.

Source votre .bashrc Fichier Pour appliquer les modifications ou déconnecter et déconnecter.

Maintenant, si vous courez mountinfo ., vous obtiendrez la sortie que vous voulez.

1
Alaa Ali

Il peut être un peu désordonné si les points de montage contiennent des blancs, mais cela devrait fonctionner sauf dans les cas où les points de montage contiennent des nouvelles lignes:

#!/bin/sh
mountpoint="$(df -P "$1" | awk '{
    if (NR==1)
        i=index($0,"Mounted on");
    else
        print substr($0,i);
    }')"
mount|grep " on ${mountpoint} type "

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 l'étiquette "montée sur" dans la ligne d'en-tête.

Après avoir obtenu le point de montage, nous le grep dans la sortie de mount.

1
Mark Plotnick

Si vous utilisez une version non complètement ancienne du GNU Coreutils DF, alors echo $(df . --output=target | tail -n 1) fonctionne. De même avec stat -c '%m' ., bien que je note que - https://linux.die.net/man/1/stat manque de documentation du %m Option de format.

Faire ce problème est fatigant: aucun de ces éléments 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, df -P . | tail -1 | awk '{ print $NF}' serait bon, mais souvent des lecteurs flash USB ont des espaces dans le nom du volume, qui apparaîtront probablement dans le chemin de montage et cassez ceci. Pour la portabilité, Perl est installable pratiquement partout et CPAN contient le module SYS :: FilserSystem :: Mountpoint qui fournit la fonctionnalité souhaitée.

0
Charles Stewart