Home > Questions

How can I sync local folders to an external hard drive with writing a script file?

Hi, I want to sync my local folders to an external HDD. Is there a way to do so by writing a script file (the local folder should be master)?

Best Answered by

Ciki Liu

Answered on Tuesday, December 3, 2024

 

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.