Я б вирішив проблему 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
, так що порядок видно.