Estou tentando usar a solução link para o bug cp usando o rsync, e não consigo faça funcionar. Essencialmente, eu preciso copiar arquivos ou diretórios recursivamente usando rsync
semelhante ao que o rsync -a
faria, mas criar arquivos e diretórios com condições normais de umask. Mas tentar isso em um único arquivo mostra que ainda está preservando as permissões no arquivo de destino, embora eu tenha especificado a opção --no-perms
:
bash-4.1$ cd /tmp
bash-4.1$ touch afile
bash-4.1$ chmod a-w afile
bash-4.1$ ls -ld afile
-r--r--r-- 1 theuser thegroup 0 Jul 24 16:50 afile
bash-4.1$ rsync --copy-links --recursive --times --group --no-perms afile afile2
bash-4.1$ ls -ld afile*
-r--r--r-- 1 theuser thegroup 0 Jul 24 16:50 afile
-r--r--r-- 1 theuser thegroup 0 Jul 24 16:50 afile2
bash-4.1$
O que eu quero é que o afile2
tenha as mesmas permissões que o afile3
criou normalmente:
bash-4.1$ touch afile3
bash-4.1$ ls -ld afile3
-rw-rw-r-- 1 theuser thegroup 0 Jul 24 16:51 afile3
Eu posso usar o comando "hard" find, conforme fornecido no link , mas prefiro não ter o sobrecarga de um comando de localização subseqüente para fazer o que eu acredito que a opção rsync --no-perms
deva fazer.
Isso precisa funcionar no espaço do usuário (não requer raiz).
Este é um erro de rsync ou erro do usuário?
OS e versão do rsync envolvidos são:
bash-4.1$ lsb_release -r -i
Distributor ID: RedHatEnterpriseWorkstation
Release: 6.8
bash-4.1$ rsync --version
rsync version 3.0.6 protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes
rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.
bash-4.1$