Since you didn't mention which operating system you are using, there're different script files you can choose from to sync local folders to your external HDD, including cp, copy, xcopy, robocopy, and rsync.
For Linux or Unix users, you can make use of the default cp command. For example, by writing the -r switch, you can copy directories recursively. By writing the -u switch, you can copy only when the source file is newer than the destination file or when the destination file is missing.
If you are using the Windows operating system, unfortunately, the normal commands such as copy and xcopy don't have the same switch as the cp command. Although you can use a FOR loop in a bat file to check the file one by one, the whole copy-paste process can take a very long time
Instead of using copy and xcopy, Windows users have way more options. For example, robocopy has a list of switches to copy file data from one location to another. The basic cmd runs as follows:
robocopy <source> <destination> [<file>[ ...]] [<options>]
One more option is rsync, a fast, versatile, and remote (and local) file-copying tool that can work with macOS. By using switches such as -t and -u, it's particularly convenient to compare files using checksums rather than just dates when copying data. This allows you to transfer only the portions of the files that have changed, which can speed up the copy process.