Peng Yu wrote: > Suppose I have directory a and b, the following command will copy the > content of a to b/a, rather than overwrite the directory 'b' by the > directory 'a'. I'm wondering if there is an option to overwrite 'b'? > > cp -r a b
The 'cp' command will always copy source to destination. This means that if you run the command multiple times that it will wastefully copy the data (possibly very large files) each and every time. The 'rsync' command is much better suited to that type of operation. Instead of using 'cp' please consider using 'rsync' instead. It will much more efficiently detect whether files need to be copied or whether files need to be deleted and do the right thing. It can be run repeatedly (is idempotent) and very efficient. rsync -n -a -v a/ b/ Use with --delete may be appropriate. rsync -n --delete -a -v a/ b/ The -n is "not really" and will only perform a trial run. I recommend always testing with -n when also using --delete since a mistake can delete something unintentionally. Remove the -n option when you have tested it and are satisfied as to the behavior. Bob