From 24810426519a002749016cbb04e6c21cd2d890cb Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Tue, 27 Dec 2016 14:49:57 +0100 Subject: [PATCH] cp: Also preserve atime/mtime for symlinks Laslo: Fixed style a bit and added comment --- libutil/cp.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libutil/cp.c b/libutil/cp.c index 7d4c174..9bb517a 100644 --- a/libutil/cp.c +++ b/libutil/cp.c @@ -152,14 +152,16 @@ cp(const char *s1, const char *s2, int depth) } if (cp_aflag || cp_pflag) { - /* timestamp and owner */ + /* atime and mtime */ + times[0] = st.st_atim; + times[1] = st.st_mtim; + if (utimensat(AT_FDCWD, s2, times, AT_SYMLINK_NOFOLLOW) < 0) { + weprintf("utimensat %s:", s2); + cp_status = 1; + } + + /* owner */ if (!S_ISLNK(st.st_mode)) { - times[0] = st.st_atim; - times[1] = st.st_mtim; - if (utimensat(AT_FDCWD, s2, times, 0) < 0) { - weprintf("utimensat %s:", s2); - cp_status = 1; - } if (chown(s2, st.st_uid, st.st_gid) < 0) { weprintf("chown %s:", s2); cp_status = 1;