Is it possible to check if a file path points to a ssd or hdd?
For example a script could do more operations in parallel when running on a SSD while on a HDD it would hurt performance.
bashhddssd
Is it possible to check if a file path points to a ssd or hdd?
For example a script could do more operations in parallel when running on a SSD while on a HDD it would hurt performance.
Best Answer
Returns
Yes
if solid state,No
if not, andInfo not available
otherwise.subshell
df /file/path | awk 'NR==2{print $NF}'
df /path/to/file
prints information on the mount point containing the given file.sed
replaces in the result.-n
disables ‘automatic’ printing, i.e. only print lines that have been specifically told to print.2
performs the operation on the second line.s|
performs a substitution with the arguments between occurrences of the delimiter given.^
from the start of the line..*%
any characters any number of times, up to the last percent sign.*/
then any number of spaces before the slash.|/
should be replaced with a slash.|p
and the line should be printed.This returns something like
/Volumes/MyVolumeName
.command
diskutil info /Volumes/MyVolumeName | awk '/Solid State/ {print $NF}'
diskutil info
provides information about the disk or volume given.awk
filters on the result./Solid State/
returns lines containing the string "Solid State".{print $NF}
prints the last column.Example: my home directory is on the internal SSD which is solid state, command returns "Yes".