From 2d81df24bdce10bb848738e0cd848162f34513cb Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Wed, 20 Nov 2019 10:39:43 -0500 Subject: do not error for existing final directory when -p is specified --- mkdir.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mkdir.c b/mkdir.c index 853980e..43e8958 100644 --- a/mkdir.c +++ b/mkdir.c @@ -65,6 +65,12 @@ static int mk_dir(char *path, mode_t mode, int flags) } if (mkdir(path, mode) != 0) { + if ((flags & PARENTS) && (errno == EEXIST)) { + struct stat st; + if (stat(path, &st) == 0 && S_ISDIR(st.st_mode)) { + return 0; + } + } fprintf(stderr, "mkdir: %s: %s\n", path, strerror(errno)); return 1; } -- cgit v1.2.1