Você pode usar stat
para consultar o modo em seu arquivo de backup e chmod
para atualizar seus arquivos de trabalho. Faça isso em um loop, com uma pequena manipulação de string e você terá uma solução. Algo como isso deve funcionar para copiar as permissões:
# path to the top level of the backup
backup_dir=/path/to/backup/dir
# path to the directory of files that you want to restore
# permissions on.
dir=/path/to/working/dir
find "$backup_dir" |
while read backup_file
do
new_file="$dir${backup_file#$backup_dir}"
chmod --reference="$backup_file" "$new_file"
done
Observe que isso não funcionará bem se os nomes dos arquivos contiverem o caractere de nova linha (mas isso é muito raro). Além disso, não foi testado, então você pode querer fazer um "dry-run" mudando 'chmod' para 'echo chmod', então ele apenas imprime o que faria.