I'm moving a whole folder from one volume to another (both HFS+), using sudo mv, and thought ACLs would be preserved. However at the end of transfer I see that they haven't been kept, and since mv deleted the files in the original volume I can't restore them.

Why did this happen, and how to do it right next time?

2 Answers 2


It would be better to use the ditto command since it is aware of resource forks, HFS attributes as well as ACL. You can alias it or try and rewire your brain to use ditto as best fits your workflow.


mv uses cp when moving files between different volumes, and it looks like the -p option isn't used, so ACL aren't preserved.

However if moved in the same volume ACLs are of course preserved.

  • In macOS 12, the man page for mv mentions that mv uses rm -f destination_path && cp -pRP source_file destination && rm -rf source_file to accomplish a cross-file system/cross-volume move. Note that the -p option for cp is mentioned in this snippet. May 10, 2022 at 20:23

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .