Você não precisa citar todos os elementos de caminho.
No arquivo de texto com a lista de caminhos, será melhor não ter citações, apenas os nomes de arquivos como eles são:
/media/tfrd/Disk06_01_M/Disk02_01_X/x_images and camera/vernon pics_other/office_PBWT4_YBP6D-7wmff_bpwg4_2vgby/office pro disk 2/BCM/Program Files/Microsoft Small Business/Business Contact Manager/SDKComponents/PPCRL/
/media/tfrd/Disk06_01_M/Disk02_01_X/x_images and camera/vernon pics_other/office_PBWT4_YBP6D-7wmff_bpwg4_2vgby/office pro disk 2/SBA/program files/Microsoft Small Business/Office Accounting 2008/SDKComponents/PPCRL/
E escreva o script assim:
#!/bin/bash
file="/home/tfrd/Desktop/filesync/rsync/test_data_01.txt"
while IFS=$'\n' read -r line
do
rsync --protect-args --include '*.jpg' --include '*.JPG' --exclude '*/*/.' --prune-empty-dirs "$line" /home/rsync/dir2
done < "$file"
É isso. Observe que $line
está entre "..."
quando usado como o argumento de caminho de rsync
. Isso garantirá que todos os espaços incorporados e outros caracteres especiais sejam manipulados corretamente.
Todo o conteúdo dentro do "..."
é tratado como um único valor,
é por isso que funciona.