One thing that I didn't see mentioned is making your own dry run for tools that don't have it built in.

It doesn't always work but sometimes I use `diff` to help with that. For example, if you have a complicated `sed` replacement that you plan to run on a file, you can use diff like this `diff -u <(echo "hello") <(echo "hello" | sed "s/hello/hi/g")` to help show what has changed.

I've written about the value of dry run too at: https://nickjanetakis.com/blog/cli-tools-that-support-previe...