Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un script pour monter un disque FW ?

30 réponses
Avatar
sebastienmarty
Bonjour tous,

Je possède un disque externe Firewire que j'utilise comme espace de
stockage annexe, et qui n'est donc pas systématiquement monté sur mon
Mac.

Quand je souhaite l'utiliser, je lance l'utilitaire de disque, qui
recherche tous les disques connectés et me permet donc de monter la
partoche correspondante.

Or j'aimerais me concocter un petit script que je collerais dans le dock
et qui me monterait automatiquement ce disque-là /sans/ m'obliger à
lancer l'utilitaire de disque à la main... et je n'y arrive pas !

Je ne suis pas grand connaisseur des choses du Terminal, mais j'ai
repéré la commande "diskutil" (qui correspond à l'Utilitaire de disque).
Quand je tape "diskutil mount /Volumes/Local250Go", ça ne fonctionne
pas. Ça ne marche que si je tape "diskutil mount /dev/disk3s3", mais
puis-je être certain que "disk3s3" sera toujours attribué à cette
partition-là ? J'ai un doute...

Bref, si vous avez une idée pour écrire un script "tout terrain"...

--
[SbM]
<http://sebastienmarty.free.fr> - <http://tradintosh.free.fr>
<http://sbm.ordinotheque.free.fr> - <http://palmiciel.free.fr>
"If the French were really intelligent, they'd speak English" (W. Sheed)

10 réponses

1 2 3
Avatar
Paul Gaborit
À (at) Wed, 18 Jul 2007 13:19:38 +0200,
(SbM) écrivait (wrote):
[...]
Tant que tu y es, Nicolas, n'y aurait-il pas moyen de regrouper les deux
lignes de mon script ? (DEVICE=bla-bla; disutil mount $DEVICE;) ?


diskutil mount `diskutil list | awk '/Secours/ {print $6}'`

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

Avatar
Franck
SbM wrote:

Tant que tu y es, Nicolas, n'y aurait-il pas moyen de regrouper les deux
lignes de mon script ? (DEVICE=bla-bla; disutil mount $DEVICE;) ?


Un truc comme ceci ?
diskutil mount /dev/$(diskutil list |awk '/Local250Go/ {print $6} ')



Qui AMHA, risque de se comporter bizarrement si le disque contenant le
volume Local250Go n'est pas connecté ou pas sous tension. D'ailleurs mon
script faisait cette vérification avant de lancer le diskutil mount ;-)


Avatar
Nicolas-MICHEL'_remove_'
Franck <franck+ wrote:

Qui AMHA, risque de se comporter bizarrement si le disque contenant le
volume Local250Go n'est pas connecté ou pas sous tension. D'ailleurs mon
script faisait cette vérification avant de lancer le diskutil mount ;-)


Au pire, je suppose que ça va générer une erreur et que rien ne sera
monté.

Si la suite du script balance des données à un emplacement non monté, il
vaut en effêt mieux faire la vérif. Mais perso je la ferais après le
mount.

--
Nicolas

Avatar
olivier.marti
Franck <franck+ wrote:

SbM wrote:

Tant que tu y es, Nicolas, n'y aurait-il pas moyen de regrouper les deux
lignes de mon script ? (DEVICE=bla-bla; disutil mount $DEVICE;) ?


Un truc comme ceci ?
diskutil mount /dev/$(diskutil list |awk '/Local250Go/ {print $6} ')



Qui AMHA, risque de se comporter bizarrement si le disque contenant le
volume Local250Go n'est pas connecté ou pas sous tension. D'ailleurs mon
script faisait cette vérification avant de lancer le diskutil mount ;-)



Ca marche en bash, la syntaxe $( commande ) ? En ksh oui.

Olivier



Avatar
Nicolas-MICHEL'_remove_'
Olivier Marti wrote:

Ca marche en bash, la syntaxe $( commande ) ? En ksh oui.


Tien, j'allais dire une bourde.

$( ... ) fonctionne en sh, bach et zsh
` ... ` fonctionne en sh, bash, zsh, tcsh et csh.

donc `` est plus portable mais oui, il passe en bash.

--
Nicolas

Avatar
olivier.marti
Nicolas MICHEL <Nicolas-MICHEL'_remove_'@bluewin.ch> wrote:

Olivier Marti wrote:

Ca marche en bash, la syntaxe $( commande ) ? En ksh oui.


Tien, j'allais dire une bourde.

$( ... ) fonctionne en sh, bach et zsh
` ... ` fonctionne en sh, bash, zsh, tcsh et csh.


Curieusement, "Mac OS X Tiger in a nutshell "n'en parle pas. A qui se
fier ... ?

Et mon "Unix in a Nutshell for System V & Solaris 2.0" ne parle pas de
bash

donc `` est plus portable mais oui, il passe en bash.


le seul problème de $( ) est la portabilité vers [t]csh, mais il y a
tellement d'autres choses pas compatibles entre [bz]sh et [t]csh. Il ne
doit pas y avoir grand monde qui fait des scripts compatibles entre les
deux familles de shell ?

Olivier


Avatar
Paul Gaborit
À (at) Wed, 18 Jul 2007 13:38:55 +0200,
Paul Gaborit écrivait (wrote):
À (at) Wed, 18 Jul 2007 13:19:38 +0200,
(SbM) écrivait (wrote):
[...]
Tant que tu y es, Nicolas, n'y aurait-il pas moyen de regrouper les deux
lignes de mon script ? (DEVICE=bla-bla; disutil mount $DEVICE;) ?


diskutil mount `diskutil list | awk '/Secours/ {print $6}'`


J'ai oublié le '/dev/' :

diskutil mount /dev/`diskutil list | awk '/Secours/ {print $6}'`

(pas testé...)

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>


Avatar
jayce.piel
Olivier Marti wrote:

le seul problème de $( ) est la portabilité vers [t]csh, mais il y a
tellement d'autres choses pas compatibles entre [bz]sh et [t]csh. Il ne
doit pas y avoir grand monde qui fait des scripts compatibles entre les
deux familles de shell ?


Personne ne fait des scripts compatibles entre les deux familles de
shells.

De toute façon :
- un script doit toujours avoir la ligne qui va bien déterminant avec
quoi il se lance...
- si on veut faire un script portable, on le fait en sh uniquement !
- si on se fout de la portabilité, on choisit un shell et on s'y tiend !

--
Anonyme ( jayce <@> mosx.net )
********* MosX.net <http://www.mosx.net/> *********
(avec un put§@#* de problème DNS sur le domaine mosx.net)

Avatar
Paul Gaborit
À (at) Wed, 18 Jul 2007 17:59:17 +0200,
ASM écrivait (wrote):
et pour plusieurs DD ? (de noms inconnus)


C'est quoi le problème ?

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

Avatar
Nicolas-MICHEL'_remove_'
ASM wrote:


diskutil mount /dev/`diskutil list | awk '/Secours/ {print $6}'`


et pour plusieurs DD ? (de noms inconnus)


Tu peux soit monter tous les disques, soit seulement certains disques
mais à ce moment il faut qu'ils aient au moins un élément connu qui fais
que tu peux dire que c'est bien ce disque là que tu veux monter.

Par exemple tu pourrais ne pas connaitre leur nom, mais connaitre leur
UUID

Ou encore monter tout disque se trouvant sur le FW, par exemple :

for i in `system_profiler SPFireWireDataType |awk
'/BSD Name: disk[0-9]s/ {print $3}'`
do
diskutil mount /dev/$i
done

Dis nous exactement ce que tu veux, on pourra mieux t'aider :)
--
Nicolas


1 2 3