On 5/1/20 9:16 AM, Jonny Grant wrote: > rm: cannot remove 'test': Is a directory
That's because rm used unlink which failed with EISDIR, which is a different error number. Consider this example: $ >d # Create an empty regular file. $ mkdir d mkdir: cannot create directory ‘d’: File exists Here the system call mkdir("d", 0777) failed with errno == EEXIST (File exists). Presumably you wouldn't object to the diagnostic here because d is a regular file, not a directory. But the mkdir system call fails in exactly the same way if d is a directory, so the error message is the same in both cases. Directories are files, so the error message is correct even if it confused you. I don't see any portable and efficient way to make the diagnostic less confusing for you, without also making diagnostic incorrect in some other scenarios (such as the scenario described above).