commit 24810426519a002749016cbb04e6c21cd2d890cb
parent e03a57df92f92a4388f7b78bcf3ce4bb46f39e66
Author: Michael Forney <mforney@mforney.org>
Date: Tue, 27 Dec 2016 14:49:57 +0100
cp: Also preserve atime/mtime for symlinks
Laslo: Fixed style a bit and added comment
Diffstat:
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git 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;