Làm cách nào để sao chép một tập tin với scp với các ký tự đặc biệt?


9

Tôi đang cố gắng sao chép một tập tin có dấu hai chấm và dấu chấm, ví dụ: với:

scp "test.json-2014-08-07T11:17:58.662378" remote:tmp/

scp test.json-2014-08-07T11\:17\:58.662378 remote:tmp/

và kết hợp với tập tin:

scp "file:///home/.../test.json-2014-08-07T11:17:58.662378" remote:tmp/

Tôi đoán là scp cố gắng diễn giải các phần của tệp dưới dạng máy chủ và / hoặc số cổng. Làm thế nào để tôi tránh điều đó?

Nếu tôi đổi tên tệp thành test.json thì nó scp test.json remote:tmp/hoạt động tốt, nhưng thậm chí không scp test*62378 remote:tmp/hoạt động.


Tôi chỉ lưu ý rằng một số "giải pháp" rõ ràng là đổi tên tệp, sao chép tệp và đổi tên lại trên máy chủ từ xa.
Finn Årup Nielsen

Một lời giải thích về lý do tại sao globs ( *), không hoạt động. Nó được thực hiện trong shell, vì vậy chính xác cùng một văn bản (đối số) sẽ được chuyển đến scp. Bạn cần thay đổi văn bản (đối số) được truyền vào scp. (xem câu trả lời bên dưới, để biết thay đổi đối số văn bản thành.)
ctrl-alt-delor

Cần lưu ý rằng đó :là một ký tự tên tệp bất hợp pháp trên OSX, vì vậy nếu bạn cần chuyển các tệp này thì đó là điều cần lưu ý.
Daenyth

Trong cygwin, nếu tên tệp bắt đầu bằng dấu gạch nối, bạn có thể đặt tiền tố cho tệp bằng dấu gạch nối kép, ví dụ:scp -- -1.JvSbrpchxuk.png user@example.com:/tmp
Shane Rowatt

Câu trả lời:


19

Sử dụng ./trước tên tệp của bạn:

scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/

Điều đó làm cho scpbiết đó là một tập tin. Không có nó, scpnghĩ rằng đó là một tên máy chủ vì dấu hai chấm.


4

Sử dụng đường dẫn bằng cách chuẩn bị trước ./và thoát khỏi :. Cyberiti có thêm thông tin . Thí dụ:

scp ./file\:with\:colons.txt remoteserver:

2
Bạn không cần phải thoát khỏi ruột kết.
cuonglm

Việc thoát của bạn :là ở cấp độ vỏ, không phải ở cấp độ scp.
ctrl-alt-delor

Vâng, bạn cần phải trốn thoát. Ít nhất trong vỏ của tôi, tôi cần thoát.
Finn Årup Nielsen

@ FinnÅrupNielsen: Vỏ của bạn là gì? Bạn không cần phải thoát dấu hai chấm, trình bao thêm dấu gạch chéo ngược cho bạn. Bạn có thể loại bỏ chúng và thấy nó vẫn hoạt động.
cuonglm

Tôi đã sai. scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/không thực sự làm việc! Lấy làm tiếc.
Finn Årup Nielsen

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.