Given a directory containing say a few thousand files, please output a list of all the names of the files in the directory that are exactly the same, i.e. have the same contents.
func(a_directory_name) output -> {“matches”: [[fn1, fn2 …], [fn3, fn4 …] … ]}
e.g. func(“/home/my/files”) where the directory /home/my/files might contain foo.txt, foo.iso, foo , bar.txt, bar , baz.csv, baz.ppt etc. and say the file foo.txt is the same as bar and foo.iso is the same as baz.csv and baz.ppt then the output would be:
{
“matches”: [
[
“foo.txt”,
“bar ”
]
,
[
“foo.iso”,
“baz.csv”,
“baz.ppt”
]
]
}
You may code the response in any programming language you like, however our primary languages are:
· Bash
· Perl
· Python
· Groovy
Please provide a written discussion of your code, what are its strengths and weaknesses, what are the boundary conditions where it will fail and where could it be improved