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.
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.
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
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 :-)
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.