Я бы решил проблему с tarпрозрачностью трубы ssh. Пример можно увидеть ниже, удаленный компьютер назван bar. Перед тестом я создал три пустых файла /tmp/foo, выполнив ssh bar 'mkdir /tmp/foo ; touch /tmp/foo/{a,b,c}'.
$ ssh bar 'cd /tmp/foo ; ls | sort -r | tar -cT -' | tar -xv
c
b
a
$ ls -l a b c
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 a
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 b
-rw-r--r-- 1 dnet dnet 0 nov 29 17:07 c
-TФлаг tarделает его прочитать имена файлов для упаковки из следующего параметра, а -означает стандартный ввод. Теперь вам просто нужно передать имя файла в него, которое может быть получено ls(как в примере) или findдля более сложных задач. С помощью этой настройки вы можете использовать, sortчтобы указать точный порядок файлов, которые будут передаваться через SSH (в этом случае -rотсортированные файлы в обратном алфавитном порядке). -vДобавляются только к финалу, распаковка tar, так что порядок виден.