Tôi sẽ giải quyết vấn đề với tar
và tính minh bạch của đường ống ssh
. Một ví dụ có thể được nhìn thấy dưới đây, PC từ xa được đặt tên bar
. Trước khi thử nghiệm, tôi đã tạo ba tệp trống /tmp/foo
bằng cách thực thi 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
Các -T
lá cờ của tar
làm cho nó đọc tên tập tin để đóng gói từ tham số tiếp theo, và -
có nghĩa là đầu vào tiêu chuẩn. Bây giờ bạn chỉ cần đặt tên của các tệp vào nó, có thể đến từ ls
(như trong ví dụ) hoặc find
cho các nhiệm vụ khó khăn hơn. Với thiết lập này, bạn có thể sử dụng sort
để chỉ ra thứ tự chính xác các tệp sẽ được truyền qua SSH (trong trường hợp này là -r
các tệp được sắp xếp theo thứ tự chữ cái ngược). Chỉ -v
được thêm vào cuối cùng, giải nén tar
, để hiển thị thứ tự.