3

I would like to move/copy a large size of files from on hard drive to another. Do I need to verify the moved files to be on the safe side or is that over-kill? If not, what software should I use?

On Windows there is a software called Teracopy for this.

  • Did you try MD5 checksum of the files in Terminal? – Pratik Jan 4 '16 at 1:45
  • openssl dgst -md5 <myfile> will produce an MD5 hash of the file. Run this at both ends and you can be certain (beyond any reasonable doubt) that the files are the same. – Boris the Spider Jan 4 '16 at 8:40
4

This discussion seems to suggest that Finder verifies copied files when copying across media (but not otherwise). This means that you don't have to verify it yourself. The only problem is I can't find proof or official confirmation that this is true. So I wouldn't 100% trust it.

In any case, if you want to make sure manually, there are two kinds of tools you can use.

Option 1: Use tools that tell you whether you copied successfully. This QA shows you how to use diff tools (command-line or GUI, your choice) to do it. stuffe's answer to your question shows a quick and dirty way to be reasonably sure the copy operation was ok: just check the total folder sizes.

Option 2: Use rsync. Rsync is a tool that can find differences between the copy source and destination, and update the destination to reflect the source. It's different from cp -R because (1) it tells you if there are differences, so it kind of does that diff does and (2) it only needs to copy over the differences, which makes it faster when the destination is almost up to date.

There are three common ways you might want to use rsync:

  • rsync --dry-run (aka rsync -n) to tell rsync to display what files need to be updated without doing anything. This is basically like diff.
  • Just use rsync to copy files over, and run it again to verify and fix differences.
  • Some people say that Finder copies faster that rsync. You can use Finder to do the initial copy, then use rsync once to verify and fix differences.

Important rsync flags to know:

  • -v, verbose, makes rsync print what is being copied. This is good for the verification step, so you see what didn't get copied right earlier.
  • -a, archive, sets a bunch of other flags that tell rsync to preserve modification time, permissions, etc. If you only want to preserve a subset of file metadata, read the rsync man page to see which flags you want to set.
  • Some people are saying that the version of rsync included with Mac OS does not support copying HFS extended file attributes, which store things like whether the file extension is shown, "Open with…" settings", spotlight comments, tags, etc. To get the latest copy of rsync, install Homebrew and brew install homebrew/dupes/rsync.
  • I am not comfortable using command-line tools. But I will have rsync in mind if I must use it. For now I will try Finder for everything that isn't dead serious. – MacProGirl Jan 4 '16 at 0:23
  • 1
    I see. Here are the options above that don't require a command line: (1) stuffe's answer of checking total file size, (2) the linked QA in option 1 shows you how to use FileMerge, a graphical tool for checking differences between folders. – interestinglythere Jan 4 '16 at 0:28
  • @MacProGirl "rsync" is probably one of the most powerful tools available on the command line - well worth learning. – Thorbjørn Ravn Andersen Jul 23 '18 at 22:51
3

rsync is the tool you want it will do the verify whilst doing the copy and if you are interrupted it can be restarted

Note that OSX's rsync is old and it you care about extended attributes you need a newer version

1

If the copy operation is successful, then there should be no need to verify. However, a quick sanity check is to highlight all the files from the top level of the drive, and use Option+cmd+i

Do this for source and destination, and check the number of files matches, and the total file size (doesn't matter if the size on disk differs, this can change depending on your drive configuration).

enter image description here

  • This does not look inside the files so you cannot be 100% certain that they are identical. I personally rely on the file system consider a completed copy to be trusted, so it is enough to do this check. – Thorbjørn Ravn Andersen Jul 23 '18 at 22:54
1

I would suggest rsync, but since you said you aren't comfortable with the bash terminal, might I suggest Unison? https://www.cis.upenn.edu/~bcpierce/unison/download.html

It's use case it to synchronise two directories that can be either local or remote. It uses rsync as part of it's back-end and is always careful to leave both directories in a safe state.

1

Carbon Copy Cloner is fantastic software that will re-copy anything that failed.

Link: http://www.bombich.com/

And FYI, this is an easy to use front-end for the venerable rsync command line tool, plus some optimizations. Rsync has been around for 20+ years I believe.

  • "vulnerable"? I assume you meant "venerable" – berdario Jan 4 '16 at 11:02
-1

I use RapidCopy for this - http://www.lespace.co.jp/file_bl/rapidcopy/manual/index_en.html

Hedge is also great - https://hedge.video

Update: I used Teracopy when I was on Windows.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .