1 votes

Détecter un SSD/HDD à partir d'un script Bash

Est-il possible de vérifier si un chemin de fichier pointe vers un SSD ou un HDD ?

Par exemple, un script pourrait effectuer plus d'opérations en parallèle lorsqu'il est exécuté sur un SSD, alors que sur un HDD cela pourrait nuire aux performances.

2voto

grg Points 181593
diskutil info "$(df /chemin/vers/fichier | sed -n '2s|^.*% */|/|p')" | awk '/Solid State/ {print $NF}'

Renvoie Oui si c'est un disque à état solide, Non sinon, et Informations non disponibles sinon.


  • sous-shell df /chemin/vers/fichier | awk 'NR==2{print $NF}'

    df /chemin/vers/fichier affiche des informations sur le point de montage contenant le fichier donné.
    sed remplace dans le résultat.
    -n désactive l'impression 'automatique', c'est-à-dire n'imprime que les lignes qui ont été spécifiquement demandées à imprimer.
    2 effectue l'opération sur la deuxième ligne.
    s| effectue une substitution avec les arguments entre les occurrences du délimiteur donné.
    ^ depuis le début de la ligne.
    .*% n'importe quel caractère un certain nombre de fois, jusqu'au dernier signe de pourcentage.
    */ ensuite n'importe quel nombre d'espaces avant le slash.
    |/ doit être remplacé par un slash.
    |p et la ligne doit être imprimée.

    Cela renvoie quelque chose comme /Volumes/NomDeMonVolume.

  • commande diskutil info /Volumes/NomDeMonVolume | awk '/Solid State/ {print $NF}'

    diskutil info fournit des informations sur le disque ou le volume donné.
    awk filtre sur le résultat.
    /Solid State/ renvoie les lignes contenant la chaîne "Solid State".
    {print $NF} imprime la dernière colonne.


Exemple : mon répertoire personnel est sur le SSD interne qui est un disque à état solide, la commande renvoie "Oui".

$ diskutil info "$(df ~ | sed -n '2s|^.*% */|/|p')" | awk '/Solid State/ {print $NF}'
Oui

0 votes

J'ai un disque externe appelé "Mobile TM", awk 'NR==2{print $NF}') ne fonctionne pas là-bas. En utilisant diskutil info "$(df /path/to/file | sed -n '2s|^.*% */|/|p')" résoudrait cela, mais la sortie État solide : Info non disponible que j'obtiens pour le disque est plus difficile à manipuler :-)

1 votes

@nohillside Merci, réponse éditée avec cela

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X