Я собираюсь предположить, что ни одно из имен не содержит пробелов, так как вы используете пробел в качестве разделителя, так как насчет чего-то вроде этого:
while read line
do
line=($line) # split line on its spaces
rsync -av -e 'ssh -p 2222' account@domain.com:${line[0]} ${line[1]}
done < file_list
Это читает ваш file_list строку за раз, разбивает его на пробел, а затем использует первое и второе "слово", которое было в качестве аргументов.
Как указал Johnsyweb, вы, возможно, имели в виду, что в каталоге действительно был пробел, и вы хотели передать его в rsync
. В таком случае я бы сказал:
while read line
do
rsync -av -e 'ssh -p 2222' "account@domain.com:${line// /\ }"
done < file_list
Это должно привести к тому, что все пробелы будут убраны, что, я думаю, может быть тем, чего вам не хватало раньше.