2013-02-26 31 views
7

Tôi đã đọc man page lệnh 'SCP' trong linux, cuối cùng nó nóiCó nghĩa là chuyển "gần nguyên tử" bằng các tệp tạm thời?

"Không nỗ lực được thực hiện tại '' chuyển giao sử dụng tập tin tạm thời" gần như nguyên tử.

Rất mơ hồ tôi có thể đoán nó là gì nhưng bất kỳ ai cũng có thể cho tôi biết rõ định nghĩa kỹ thuật của câu này.

Cảm ơn, lúa

Trả lời

4

nguyên tử có nghĩa là không có gì khác có thể đọc hoặc viết các tập tin cho đến khi scp đã kết thúc với nó. "Gần nguyên tử" dùng để chỉ thực hành phổ biến là sao chép một tệp vào một vị trí tạm thời (trên máy/đĩa mục tiêu) và sau đó di chuyển nó vào vị trí cuối cùng. Các hoạt động di chuyển nhanh hơn nhiều so với một bản sao ("gần nguyên tử" bằng cách so sánh) nhưng nó không nhất thiết phải nguyên tử theo nghĩa thực sự của từ đó. Một quá trình khác vẫn có thể đọc tệp trong trạng thái không nhất quán trong khi di chuyển không nguyên tử.

+0

Cảm ơn đã trả lời câu hỏi của tôi .... – paddy

+1

Điểm về động thái đang chỉ gần như nguyên tử là không nhất thiết phải chính xác. Ít nhất trên Linux di chuyển được đảm bảo là nguyên tử, miễn là mục tiêu và điểm đến là trên cùng một phân vùng. Trong trường hợp đó, di chuyển chỉ là thay đổi trong siêu dữ liệu, để tệp đầy đủ xuất hiện cùng một lúc tại đích. Xem thêm câu trả lời khác bên dưới. – LiKao

5

Bản sao nguyên tử sẽ là trạng thái của Craig, để sử dụng tệp tạm thời và sau đó chuyển tệp tạm thời đến đích dự định. Mv IS là nguồn cung cấp nguyên tử và đích đến nằm trên cùng một phân vùng. Chỉ các thao tác tệp có tệp tmp đã mở mới có thể đọc được nội dung. rename() không phải là nguyên tử trên các tệp di chuyển giữa các phân vùng khi dữ liệu phải được sao chép.

này giả định bạn đang scp'ing sang một hệ thống UNIX tất nhiên :)