Q:

Copy file permissions, but not files in Unix

(From : https://stackoverflow.com/questions/15245144/copy-file-permissions-but-not-files, closed because off-topic)
I have two copies of the same directory tree.  They almost have the same files in both (one version may have a couple extra or missing files).  However, most of the files are in common to both directories (have the same relative paths and everything). 
Assume these are in directories:
version1/
version2/

The problem is that the permissions in version1/ got messed up, and I would like to copy over the permissions from version2/, but do it without replacing the files in version1/ which are newer. 
Is there an automated way to do this via shell commands or scripts?  

A:

GNU cp knows the --attributes-only flag since coreutils 8.6

--attributes-only   don't copy the file data, just the attributes

A:

My version of cp doesn't have the --attributes-only flag, so I worked up this.  Briefly tested on simple folders, YMMV. 
$> ls
version1/
version2/
$> ls -l version1/1/a
-rw-rw-r-- 1 alex alex 0 Feb  5 12:49 version1/1/a
$> ls -l version2/1/a
-rwxrwxrwx 1 alex alex 0 Feb  5 12:49 version1/1/a

$> find version1 -type f -printf '%P\n' | xargs -I {} \
    chmod --reference=version1/{} version2/{}

$> ls -l version2/1/a
-rw-rw-r-- 1 alex alex 0 Feb  5 12:49 version1/1/a

A:

You can, but i don't think in an "automated way" ! 
GNU chown and GNU chmod have a --reference=RFILE parameter you can use. 
chown --reference=RFILE yourfile
chmod --reference=RFILE yourfile

It uses RFILE settings (permissions, owner, group, etc..) and copies them to yourfile. 
the manual explains in more detail. 