I'd like to copy the modification and access times, but not the user ID. If I use
cp -p source target
It will copy everything.
I'm trying to copy files to a different user but keep the original dates intact.
From the cp
manual of GNU coreutils
:
-p
same as--preserve=mode,ownership,timestamps
So, you are looking for
cp --preserve=mode,timestamps source target
But if you use some non-GNU operating system, you might not be able to use these long option with cp
. In that case, you can give rsync
a try, where you can specify in details which attributes should be preserved (search the man page for "preserve"):
-H, --hard-links preserve hard links
-p, --perms preserve permissions
-E, --executability preserve executability
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-o, --owner preserve owner (super-user only)
-g, --group preserve group
--devices preserve device files (super-user only)
--specials preserve special files
-t, --times preserve modification times
So, to resemble the cp
command above, use something like
rsync -pEt source target
To test the command beforehand, you can initiate a "dry-run" with -n
. Add also the verbose parameter -v
to see what's going on:
rsync -nv -pEt source target
However, I'm not sure, if the access time will be copied, too.
cp
from the GNU coreutils. ls --all
works there, too.
cp
doesn't offer long options. I'll add an alternative possibility with rsync
, perhaps that's an option for you.
I believe the ditto command preserves dates.
ditto src target
cp -p...
, or cp -p -r...
, for some unknown reason, 4 out of 10 files preserved their mtime as expected, but the other 6 showed up with the copy time as the new mtime.