I would like to move a directory from one location to another but when I do I can see that the timestamp gets changed. Is there any way to retain the timestamp as original?
Have looked at the man page of mv but couldn't find any existing options.
Use cp as following, mv doesn't do.
cp -r -p /path/to/sourceDirectory /path/to/destination/
from man cp:
-p
same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all
then after copy done, delete the sourceDirectory.
cp does, you need do a deletion after copy.
mv alternative if available.
rsync with --remove-source-files option to delete files only but this will not delete directory itself, so you need do directory deletion too after that.
cp -r --preserve=all is the best I can get?
On linux, this works:
timestamp=$(stat -c %y foldername)
mv foldername new_foldername
touch -d "$timestamp" new_foldername
The stat -c %y command returns the modification date of the folder, in readable form. That value is retained and used with the command touch -d "$timestamp" to set the time of the new folder.
$( ... ) style for command substitutions instead of backquotes, and not use all-uppercase-variable names unless they are environment variables?