Có cách nào để làm một "ls" từ xa giống như "scp" sao chép từ xa trong một vỏ linux tiêu chuẩn không?
Có cách nào để làm một "ls" từ xa giống như "scp" sao chép từ xa trong một vỏ linux tiêu chuẩn không?
Câu trả lời:
Bạn luôn có thể làm điều này:
ssh user@host ls -l /some/directory
Điều đó sẽ SSH đến máy chủ, chạy ls, kết xuất lại cho bạn và ngắt kết nối ngay lập tức.
scp
và rsync
có thể sftp
là như vậy.
alias rls="ssh user@host ls -l"
Khởi động lại vỏ của bạn và rls /some/directory
sẽ hoạt động.
Để liệt kê tất cả các tệp trong một thư mục:
rsync host.name.com:directory/path/'*'
Đối với một cái gì đó như tìm thư mục / đường dẫn -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. Tôi đoán điều này ngụ ý rằng nó sử dụng SSH trong nền?
ls -l
. Trên hệ thống của tôi, có vẻ như không có tùy chọn nào để liệt kê các tệp.
Đối với tất cả mọi người thông qua google cho câu hỏi này vì họ đang tìm cách liệt kê các tệp từ xa nhưng không thể truy cập máy chủ từ xa qua ssh (trường hợp phổ biến cho các máy chủ dự phòng), bạn có thể sử dụng 'sftp'.
Thí dụ:
sftp username@hostname.xyz
ls
cd somedir
exit
Bắt đầu một phiên tương tác trong một thư mục từ xa cụ thể:
sftp [user@]host[:dir]
Tôi thấy việc sử dụng thường xuyên nhất của tôi là lấy kết quả ls, một danh sách đơn giản các tệp mà không có tất cả các quyền và ngày, v.v. và giữ nó trong một tệp cục bộ.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Bạn có thể chạy bất cứ điều gì bạn muốn trong dấu ngoặc kép. Tất cả đầu ra kết thúc trong tệp văn bản địa phương của bạn. Hoặc nếu bạn muốn chạy một tập lệnh khó chịu lớn trên máy chủ và nắm bắt tất cả đầu ra của nó, thậm chí có lỗi:
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
{ }
không cần thiết.