Every directory has a shorthand name to refer to itself. That special name is the `.' (dot) and it is a map to the inode of the directory.
It is quite useful when you are in a directory and you only have to enter a `.' to refer to where you are, instead of the whole path.
That's why people refer to the `.' as the "current directory". Or "`this' directory".
Using your example:
/home/rahualux/details/employee_files/.
It would be as saying: "`That' directory" and it doesn't make much sense, since you have to enter the full path already, including the name of the `that' employee_files directory.
In /home/rahualux/details , there can not be two inodes that has the same name, which means, there can NOT be a file named employee_files and a directory employee_files. Therefore, the trailing `/' in /home/rahualux/details/employee_files/ is not necessary. mv knows that it is a directory.
In human terms, it means, move the file emp.csv to employee_files , if employee_files is a directory, that directory gets a file named emp.csv , if employee_files is a file, that's what emp.csv would be called.
employee_files has to be a directory, since multiple `anything.csv' can not be renamed to be called employee_files , due to the rule I mentioned before of "there can not be two inodes that have the same name, in the same directory"
I agree with what Aia said, but there are cases where adding a "/." (or just "/") to the end of a pathname that is supposed to be a directory can be helpful. For example, with the command:
it is true that mv will issue a diagnostic if /home/rahualux/*.csv expands to a list of more than one file if /home/rahualux/details/employee_files is not a directory; but if the *.csv only matches one file and employee_files does not exist (or is a non-directory file), the file matching *.csv will be copied to or linked to employee_files destroying its previous contents if there were any. While, under these circumstances, the command:
will get a diagnostic saying that employee_files is not a directory.
When I am typing a command into the shell to move a file into a directory, I usually add a trailing "/" on the directory name just to protect against typing mistakes. I tend not to do that in scripts if I am sure that the directory structure is safe. If the script I'm writing is moving files around in an file hierarchy where several people have write access and multiple people/processes might be rearranging files while the script is running, I frequently use a trailing "/" on the target directories so the script fails as soon as something goes wrong.
Whether or not you decide to add a "/" or "/." to the ends of directory names is something that will probably depend on your typing skills, how many times you lose a file by accidentally misspelling a directory name, how much pain you have gone through while trying to recover a file you accidentally lost due to typing mistakes, and how important the files you are moving at the moment are to you.