I disagree with "There's an obscure option to GNU dd to get it to display a progress meter as well".
The proposed alternative is to use the program "pv". In my opinion, the program "pv" deserves the epithet "obscure", not dd.
I have been using Linux for decades, but the program "pv" has not been installed on any of the systems that I have used.
On the other hand, dd is a part of coreutils, so it is always available.
I frequently use dd when writing on raw devices precisely for the progress option, because the images written may have sizes from tens of GB to several TB, so the duration of the operation is not negligible, sometimes it may take hours, because on most SSDs the writing speeds drop to quite low values for multi-GB data sizes.
Moreover, since SSDs have replaced HDDs, the size of the write buffer has become much more important than before. There are many SSDs where certain buffer sizes can increase the writing speed a lot, typically when the buffer size matches the size of the erase block, which might be of 128 kB or 64 kB, or of another similarly large size. The right buffer size must usually be determined by experiments, so there is no chance that a standard copying program will choose it by default.
Sure, pv might be obscure, but it's stream-oriented, where dd is file-oriented.
Incidentally, we get another Useless Use Of `Cat something | pv > outfile`, instead of `pv < infile > outfile` (or even `cat < infile > outfile`, let the shell do its job ffs)
The proposed alternative is to use the program "pv". In my opinion, the program "pv" deserves the epithet "obscure", not dd.
I have been using Linux for decades, but the program "pv" has not been installed on any of the systems that I have used.
On the other hand, dd is a part of coreutils, so it is always available.
I frequently use dd when writing on raw devices precisely for the progress option, because the images written may have sizes from tens of GB to several TB, so the duration of the operation is not negligible, sometimes it may take hours, because on most SSDs the writing speeds drop to quite low values for multi-GB data sizes.
Moreover, since SSDs have replaced HDDs, the size of the write buffer has become much more important than before. There are many SSDs where certain buffer sizes can increase the writing speed a lot, typically when the buffer size matches the size of the erase block, which might be of 128 kB or 64 kB, or of another similarly large size. The right buffer size must usually be determined by experiments, so there is no chance that a standard copying program will choose it by default.