1 votos

Detectar SSD/HDD desde Bash script

¿Es posible comprobar si una ruta de archivo apunta a un ssd o a un hdd?

Por ejemplo un script podría hacer más operaciones en paralelo cuando se ejecuta en un SSD mientras que en un HDD perjudicaría el rendimiento.

2voto

siva Puntos 23
diskutil info "$(df /path/to/file | sed -n '2s|^.*% */|/|p')" | awk '/Solid State/ {print $NF}'

Devuelve Yes si es de estado sólido, No si no, y Info not available de lo contrario.


  • subshell df /file/path | awk 'NR==2{print $NF}'

    df /path/to/file imprime información sobre el punto de montaje que contiene el archivo dado.
    sed sustituye en el resultado.
    -n desactiva la impresión "automática", es decir, sólo imprime las líneas que se han ordenado específicamente.
    2 realiza la operación en la segunda línea.
    s| realiza una sustitución con los argumentos entre las ocurrencias del delimitador dado.
    ^ desde el inicio de la línea.
    .*% cualquier carácter cualquier número de veces, hasta el último signo de porcentaje.
    */ y después cualquier número de espacios antes de la barra.
    |/ debe sustituirse por una barra oblicua.
    |p y se imprimirá la línea.

    Esto devuelve algo como /Volumes/MyVolumeName .

  • comando diskutil info /Volumes/MyVolumeName | awk '/Solid State/ {print $NF}'

    diskutil info proporciona información sobre el disco o volumen dado.
    awk filtros en el resultado.
    /Solid State/ devuelve las líneas que contienen la cadena "Solid State".
    {print $NF} imprime la última columna.


Ejemplo: mi directorio personal está en el SSD interno que es de estado sólido, el comando devuelve "Sí".

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X