2012-05-26 09:09:09 +0000 2012-05-26 09:09:09 +0000
61
61

Comment puis-je obtenir le chemin de montage d'un périphérique USB sur OSX ?

J'ai un script de sauvegarde qui sauvegarde certaines données sur un périphérique USB. Le problème que j'ai est qu'OSX change parfois le chemin de montage prévu. Par exemple, si un fichier est verrouillé sous le chemin de montage prévu, OSX le monte sur un autre chemin. Un périphérique USB nommé “BACKUP” peut être monté dans /Volumes/BACKUP-1 au lieu de /Volumes/BACKUP.

Y a-t-il un moyen de connaître le chemin de montage actuel d'un périphérique USB dans le terminal OSX ? Quelque chose comme “mount_path BACKUP” (la commande est fausse) qui retournerait alors “/Volumes/BACKUP-1” ou rien si le périphérique n'était pas monté ?

Réponses (8)

72
72
72
2012-05-26 09:56:13 +0000

Les commandes suivantes vous donnent des informations sur les volumes montés :

  • Le célèbre Unix mount, qui affiche par exemple /dev/disk5s3 monté à /Volumes/Foo
  • diskutil list montre une vue d'ensemble de tous les disques et volumes
  • diskutil info /dev/disk5s3 montre des informations sur ce volume, y compris un Volume UUID qui peut être utilisé pour identifier ce volume de manière unique.

Vous pouvez interroger diskutil info en utilisant l'UUID du volume :

$ diskutil info DEC8759E-F77D-3EAE-B3EB-B6438F1AA428 | grep 'Mount Point'
   Mount Point: /Volumes/DroboOne

Exemple de sortie de commande sur mon système :

10
10
10
2012-10-26 20:32:46 +0000

Qu'en est-il de ce commandement :

df -lH | grep "Filesystem"; df -lH | grep "/Volumes/*"

Dans la colonne “Monté sur” vous obtenez tous les points de montage de tous les appareils montés sur "/Volumes", qui dans mon cas sont presque toujours des appareils USB ;-)

Les commandes grep sautent en gros le disque dur qui est monté sur "/".

Dans le terminal de mon OSX Snow Leopard, je l'utilise pour avoir un aperçu rapide des points de montage de mes périphériques USB actuellement connectés. Si vous n'êtes intéressé que par les Mount Points et non par tous les autres paramètres comme l'UUID etc., ce serait à mon avis la manière la plus simple plutôt que "diskutil" avec toutes ses informations.

2
2
2
2015-12-29 11:14:55 +0000

Je le récupère dans une variable :

media=Je le récupère dans une variable : 

df | grep "media" | awk '{print $6}'Je le récupère dans une variable : 


ou

media=$(df | awk '/media/ {print $6}')

La commande df liste les partitions, la sortie résultante est transmise en entrée à la commande grep qui filtre et ne conserve que les lignes contenant le mot media, qui est ensuite transmise à la commande awk qui ne conserve que la 6ème colonne de sa ligne d'entrée.

1
1
1
2019-05-11 12:18:33 +0000

Juste le bon vieux diskutil. Ce n'est pas Linux, où vous pouvez probablement jeter un oeil dans /sys ou quelque chose comme ça.

diskutil info "$VolumeName" | grep "Mount Point" | tr " " "\n" | tail -1
0
0
0
2015-02-25 15:53:57 +0000

C'est ce que j'utilise dans mes scripts shell sous OS X

df | awk '{print $6}' | grep -Ex "/Volumes/myvolume"
```.
0
0
0
2012-05-26 12:33:15 +0000

J'utiliserais simplement fstab pour cela. Il y a un fil de discussion à ce sujet sur Super User : Mac Lion : fstab est obsolète. Alors qu'est-ce qui le remplace pour empêcher le montage d'une partition ?

0
0
0
2012-09-26 09:25:39 +0000

J'ai fini par utiliser ce script de bash :

#!/bin/sh
#
# Retrieves the mount point of an OSX volume name or UUID.
# @param $1 Name of the volume or UUID of the volume.
# @return returns the mount path or an empty string if the volume is not mounted. 
#
diskutil info $1 | grep 'Mount Point' | cut -d : -f 2 | sed 's/^ *//g' | sed 's/ *$//g';
```.
-1
-1
-1
2017-04-27 13:40:38 +0000

Cela pourrait mieux fonctionner :

df -lH | grep -E "*putinyourvolumelabel*$" | awk '{print $1}''