Sự khác biệt giữa cp -r và cp -a


174

Tôi đang tìm kiếm sự khác biệt giữa cp -rcp -a. "Đệ quy" có nghĩa là gì trong việc sao chép các tập tin từ một thư mục?


62
một số người đang tìm kiếm một lời giải thích tốt hơn cho các trang người đàn ông bởi vì nó không phải lúc nào cũng rõ ràng mô tả có nghĩa là gì. Tôi đã phải đào nhiều lần và thử nghiệm / thử nghiệm để tìm hiểu điều gì đang thực sự xảy ra với một lệnh cụ thể. Trang người đàn ông của grep có thể làm tôi bối rối bất cứ ngày nào.
Joe

2
Tôi có thể hiểu sự thất vọng của bạn, nhưng imo, cách tốt nhất để học là thử nghiệm và thử nghiệm.
tăng gấp ba

37
HOẶC tìm hiểu bằng cách đặt câu hỏi tại đây, nhận câu trả lời theo cách bạn hiểu và sau đó có ý thức tốt hơn để hiểu những gì và cách kiểm tra và thử nghiệm. Xin lưu ý rằng công việc của bạn rất thường xuyên không phù hợp với tôi, v.v.
Will Lanni

Câu trả lời:


198

Đệ quy có nghĩa là cpsao chép nội dung của các thư mục và nếu một thư mục có các thư mục con thì chúng cũng được sao chép (đệ quy). Nếu không -R, cplệnh bỏ qua các thư mục. -rlà giống hệt với -Rtrên Linux, nó khác với một số trường hợp cạnh trên một số biến thể unix khác.

Theo mặc định, cptạo ra một tập tin mới trong đó có nội dung tương tự như các tập tin cũ, và các điều khoản tương tự, nhưng bị hạn chế bởi umask ; bản sao được ghi ngày từ thời điểm sao chép và thuộc về người dùng thực hiện bản sao. Với -ptùy chọn, bản sao có cùng thời gian sửa đổi, cùng thời gian truy cập và quyền tương tự như bản gốc. Nó cũng có cùng chủ sở hữu và nhóm như bản gốc, nếu người dùng thực hiện sao chép có quyền tạo các tệp đó.

Các -atùy chọn có nghĩa -R-p, cộng với một vài tùy chọn bảo quản khác. Nó cố gắng tạo một bản sao gần với bản gốc nhất có thể: cùng một cây thư mục, cùng loại tệp, cùng nội dung, cùng siêu dữ liệu (thời gian, quyền, thuộc tính mở rộng, v.v.).


35
Về cơ bản, trừ khi bạn muốn một cái gì đó đặc biệt, bạn không bao giờ cần -rbởi vì -a(đối với archive) luôn an toàn nhất và có lẽ là những gì bạn mong đợi sẽ xảy ra.
ams

2
@ams Vâng, đó là một bản tóm tắt tốt. Lý do phổ biến duy nhất để sử dụng -rlà vì bạn đang sử dụng một số biến thể unix khác với Linux không có -avà nói chung là bạn sẽ sử dụng cp -rp. Hoặc rsync -a.
Gilles

đôi khi quyền sẽ cho phép -r nhưng không -a
DrCord

Không -r, không -R không hoạt động trong Ubuntu 18
Arkady

16

Tùy chọn -r hoặc -R cho "đệ quy" có nghĩa là nó sẽ sao chép tất cả các tệp bao gồm các tệp bên trong các thư mục con.

Tùy chọn -a như được liệt kê giống như -dR, có nghĩa là nó sẽ bảo toàn các liên kết cũng như sao chép nội dung của các thư mục con. Điều đó có nghĩa là gì khi giữ liên kết là nó sẽ không theo liên kết vì nó được sao chép đệ quy.

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.