84

Let's say I have a file a.txt in LINUX with permission of 0664. When I use rsync to copy the file to my Mac with rsync -r -t -v LINUX MAC, the file's permission becomes 0644.

How can I keep the permission for a file when using rsync? The -g option doesn't work.

1 Answer 1

113

You want the -p flag:

    -p, --perms                 preserve permissions

I tend to always use the -a flag, which is an aggregation of -p and several other useful ones:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

Both taken straight from the rsync manpage.

4
  • 1
    Thanks for the answer, but I got some errors with -a/-p option - unix.stackexchange.com/questions/12203/…
    – prosseek
    Apr 28, 2011 at 14:58
  • 6
    But does it preserve the permissions if the destination machine does not have a username equaling the one who owns the files on the source? (e.g. I have vmail user on source but not on target, does it preserve the username when restoring to source?)
    – W.M.
    Apr 22, 2019 at 9:20
  • 4
    @W.M. it's been a few years since you asked the question, but I found that the rsync -a switch also includes performs the "preserve owner" and "preserve group" options, which requires super-user. Also, you may want to consider --numeric-ids which won't map username/groupname Sep 4, 2021 at 21:24
  • Make it an answer, @ray_voelker! :)
    – bomben
    Oct 3, 2021 at 15:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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