A solução é usar --chmod=a=rwX
, em que X
permite a travessia
rsync\
--include="aws*" \
--exclude="*" \
-avh --chmod=a=rwX
source/ destination/
A resposta detalhada em askubuntu
Eu tenho uma pasta de origem
source /
-rw-------@ 1 user staff 41B Mar 23 13:59 aws-1
-rw-r--r-- 1 user staff 112B Mar 23 14:36 aws-2
-rw-rw-rw-@ 1 user staff 2.3K Feb 5 17:15 google
a pasta de destino ainda não existe. E eu tento rsync os 2 arquivos aws em uma pasta de destino. Aqui está o meu comando:
rsync \
-avh --chmod=a=rw \
--include="aws-*" \
--exclude="*" \
"source/" "destination/"
O que eu estou tentando fazer é rsync os arquivos 2 aws e alterar suas permissões uma vez na pasta de destino. Depois de executar o comando, recebi um erro e os arquivos não estão na pasta de destino. Apenas a pasta é criada. Aqui está o erro:
building file list ... done
created directory /Users/user/destination/aws
./
rsync: recv_generator: failed to stat "/Users/user/destination/aws/aws-1": Permission denied (13)
rsync: recv_generator: failed to stat "/Users/user/destination/aws/aws-2": Permission denied (13)
rsync: recv_generator: mkdir "/Users/user/destination/aws/." failed: Permission denied (13)
*** Skipping everything below this failed directory ***
Diz permissão negada sem copiar os arquivos. Eu ainda não entendi qual problema de causa de permissão. Meu arquivo de origem e diretório parece bem. A pasta de destino criada também parece boa.
PS: Preciso que meu comando rsync ocorra dentro de um script bash
A solução é usar --chmod=a=rwX
, em que X
permite a travessia
rsync\
--include="aws*" \
--exclude="*" \
-avh --chmod=a=rwX
source/ destination/
A resposta detalhada em askubuntu
Tags permissions chmod rsync