I don't know the best way to do this. I wanted to change some files but I wanted to keep the original timestamps. So I did it this way: # get the timestamp TIME_STRING=$(date -d "$(stat -c %y FILE)" +"%Y%m%d%H%M.%S") make changes to FILE # change the timestamp back to what it was before the change touch -t $TIME_STRING FILE My use was something like this: for FILE in $(grep -l FOO) ; do TIME_STRING=$(date -d "$(stat -c %y "$FILE")" +"%Y%m%d%H%M.%S") perl -pi -e 's/FOO/BAR/' "$FILE" touch -t $TIME_STRING "$FILE" done So how do you all do this kind of thing? Mike