Lỗi khi sử dụng SCP: không phải là một tập tin thông thường


73

Tôi đã tìm kiếm một lúc và tôi không thể tìm thấy định nghĩa của một tập tin thông thường. Con đường của tôi là vĩnh viễn (tôi bắt đầu lúc /) và tôi đang kết nối với

scp root@IP: /path/to/picture.jpg

Kết quả trong một cuộc điều tra về mật khẩu và sau đó ...

scp: .: not a regular file

Câu trả lời:


59

Một tệp thông thường là một tệp không phải là một thư mục hoặc các loại tệp đặc biệt kỳ lạ khác như các đường ống, thiết bị, ổ cắm, cửa ra vào, v.v. Các liên kết tượng trưng cũng không phải là các tệp thông thường, nhưng chúng hoạt động như mục tiêu của chúng khi nó một ứng dụng đang truy cập nội dung của tập tin.

Bạn đã thông qua root@IP:như là nguồn của bản sao và /path/to/picture.jpglà đích đến. Nguồn là thư mục chính của người dùng roottrên máy IP. Điều này hữu ích như là một điểm đến, nhưng không phải là một nguồn. Những gì bạn đã nhập cần thiết để sao chép một thư mục vào một tập tin; scpkhông thể sao chép một thư mục trừ khi bạn yêu cầu một bản sao đệ quy với -rtùy chọn (và nó sẽ từ chối ghi đè lên một tệp hiện có ngay cả với một thư mục -r, nhưng nó sẽ lặng lẽ ghi đè lên một tệp thông thường nếu nguồn là một tệp thông thường).

Nếu /path/to/picture.jpglà đường dẫn trên máy từ xa của tệp bạn muốn sao chép, bạn cần phải dán tên tệp vào đặc tả máy chủ. Đó là dấu hai chấm :ngăn cách tên máy chủ với đường dẫn từ xa. Bạn sẽ cần phải xác định một điểm đến là tốt.

scp root@IP:/path/to/picture.jpg /some/destination

Nếu bạn muốn sao chép tệp cục bộ /path/to/picture.jpgvào máy chủ từ xa, bạn cần trao đổi các đối số. Các lệnh sao chép Unix đặt (các) nguồn đầu tiên và đích cuối cùng.

scp /path/to/picture.jpg root@IP:

Nếu bạn muốn sao chép tệp từ xa /path/to/picture.jpgvào cùng một vị trí cục bộ, bạn cần lặp lại đường dẫn. Bạn có thể có vỏ của bạn thực hiện công việc lặp lại cho bạn (ít gõ, ít đọc hơn).

scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg

2
đảm bảo không có khoảng trắng tồn tại giữa tên máy chủ và tệp
chris

Tôi cảm thấy vô cùng ngớ ngẩn sau khi đọc điều này. điểm đến gốc! Tât nhiên!
Chaim Eliyah

112

Khi sao chép một thư mục, bạn nên sử dụng -rtùy chọn:

scp -r root@IP:/path/to/file /path/to/filedestination

1
Mặc dù câu trả lời được chấp nhận về mặt kỹ thuật trả lời câu hỏi thực tế, câu trả lời này rất có thể là những gì những người đến trang này đang tìm kiếm.
cgnorthcutt

4

vấn đề cú pháp - loại bỏ khoảng trắng giữa

root @ IP:

/con đường


Nhưng, sau đó bạn không có mục tiêu cho scpnữa.
Bernhard

vâng tôi nhấn enter quá nhanh và thiếu rep để sửa nó. ngạc nhiên tôi thậm chí có thể bình luận ở đây. chúc mừng
lừa đảo

2
Tôi nghĩ bạn luôn có thể nhận xét về những đóng góp của riêng bạn, và tôi nghĩ bạn cũng có thể luôn chỉnh sửa chúng?
Bernhard

Tôi không thik có thể gây ra lỗi nàynot a regular file
NGÀY

@hisi dùng -rlàm đối số scp.
Ankur Loriya

2

scp root@IP:/path/to/file /path/to/filedestination

Lệnh trên sao chép một tập tin từ máy chủ từ xa vào máy tính của bạn. Nếu bạn gõ chỉ scp root@IP:nó sẽ cố gắng sao chép thư mục gốc của root (nhà người dùng scp .).

Vì vậy, bạn cần cung cấp đường dẫn chính xác đến tập tin


Điều này đã làm việc. Cảm ơn một bó, người đàn ông. Giữ nó lên!
JeffM

2

Bạn đang gặp phải lỗi đó vì bạn đang cố sao chép một thư mục chứ không phải tệp và do đó bạn nên sao chép các tệp của mình một cách đệ quy bằng cách sử dụng -rtùy chọn

Sử dụng lệnh dưới đây khi sao chép tệp từ máy từ xa sang máy cục bộ

scp -r root@RemoteIP:/path/to/file /path/to/filedestination

HOẶC LÀ

Khi sao chép tập tin từ máy cục bộ sang máy từ xa

scp -r /path/to/file root@RemoteIP:/path/to/filedestination

0
scp root@IP:/path/to/*.jpg  /path/to/filedestination/

Điều này sẽ hoạt động (ít nhất là trên máy Mac của tôi)

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.