I'm copying files and folders over from one filesystem to another (both are ext3) via cp in the terminal. The 'date modified' on all of the files are being changed to the current time although I am not modifying the folder or the files. I'd like for them to keep their existing 'last modified date' which vary within the past 5 years.

I am not interested in changing them to a specific date as described this previous question, but to maintain the existing 'last modified' date.

EDIT: This is still applicable for versions of ubuntu 12.04+ and newer

cp --preserve=timestamps <source> <destination>

If you are recursively copying you could use:

cp -a <source> <destination>

From the cp manual page:

-a, --archive
       same as -dR --preserve=all

-d     same as --no-dereference --preserve=links

-R, -r, --recursive
       copy directories recursively

       preserve  the specified attributes (default: mode,ownership,timestamps),
       if possible additional attributes: context, links, xattr, all
  • Thanks, I read over the cp man page again and found it as well ! Will mark this as answer once I'm eligible to. For anyone else interested, the p parameter, a shortcut of --preserve also does this, as well as the mode and ownership. – Will. Jun 24 '13 at 16:35
  • 1
    'cp -p' works and is simplest. From man page: -p is same as --preserve=mode,ownership,timestamps. Also rsync -a for archive mode. – gaoithe May 24 '16 at 11:34

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.