$ cp -rp /path/to/source/directory /path/to/target/
or mirrored the source directory to the target one.
$ rsync -av /path/to/source/directory/ /path/to/target/directory/
You might want to confirm your job is done. Let's see what we can compare between the two.
$ du -sb /path/to/source/directory; du -sb /path/to/target/directory
du usually returns a proximate result which is not accurate, but -b can count the actual bytes of the directories, which means that it will return the apparent size in bytes. Please note that, some Unix do not support -b option.
File ListWe are going to list both directories to text files, and then use diff to compare the two outputs.
$ ls -rtl /path/to/source/directory > source.lst; ls -rtl /path/to/target/directory > target.lst; diff source.lst target.lst
This command will not only compare the file name, but also compare the permission, file size, modified date, etc.
File ChecksumWe take advantage of rsync to do the checksum.
$ rsync -avnc /path/to/source/directory/ /path/to/target/directory/
The option -n instructs rsync to do a dry-run which will list all different files but transfer nothing in fact. Another option -c means the comparison should base on the checksum of source and target files.
I have to note this down. This command of doing checksum is quite easy but it might be expensive in terms of execution time for a large-scaled, say, 100 Giga-byte or above degree directories.