Assignment: Write a bash script that will implement the following command:
merge [ -i -o ] sourcedirectory1 sourcedirectory2 destinationdirectory
The idea is that the contents of sourcedirectory1 and sourcedirectory2 are going to be copied and merged together, according to the options, into a new destinationdirectory. The destination directory should be created (using mkdir) to hold the copied data. The original contents will not be altered. Your shell script should parse the command's options to see what to do, reporting any option errors such as an invalid option, missing or extra directory names, file names rather than directory names, two names that are the same, and a destination directory that already exists. Whenever files and directories are copied, you should preserve the properties as much as possible using the -p option of the cp command.
The command options are as follows: by default the merger is a union operation, so that if a file exists in either source directory it is included in the new directory. If the -i option is used, then the merger is an intersection operation, so that only if a file exists in both source directories will it be included in the new directory. Whenever a file exists in both source directories, by default the newer version of the file should be copied. If the -o option is used, then the older version of the file should be copied into the new directory. You can use the -nt and -ot test operators to compare which of two files is newer or older. If two items that have the same name are not both a file or both a directory, then an error message should be displayed saying that you are skipping this pair of incompatible objects. If the two items with the same name are both directories, then you should call your merging routine recursively to process these subdirectories.