Điểm:0

Sao chép tệp dựa trên ngày với cấu trúc của thư mục

lá cờ lk

Tôi có lời khen:

tìm /nguồn/ -type f -newermt '18 tháng 12 năm 2020' -exec cp -t /target/ {} +

Phần thưởng này chỉ sao chép các tệp, không có cấu trúc thư mục, nhưng tôi cần các tệp có thư mục mẹ của anh ấy.

Điều thứ hai là tại sao ngày của tệp bị thay đổi khi tôi sao chép chúng? Có thể không thay đổi ngày của tệp sửa đổi khi tôi sao chép chúng không?

Điểm:3
lá cờ es

có cái --preserve=tất cả tùy chọn để cp; xem người đàn ông cp.

Nhưng tôi khuyên bạn nên sử dụng rsync thay vì cp; nó linh hoạt hơn nhiều và thật dễ dàng để làm cho nó giữ dấu thời gian và chỉ sao chép các tệp mới hơn. Nó có một số đường cong học tập với tất cả các tùy chọn mà nó hỗ trợ, nhưng cũng rất đáng để đi sâu vào điều đó.

Trường hợp sử dụng bình thường trông như thế này:

rsync -n -av /some/where/sourcedir .

Điều này sao chép đệ quy nguồn thư mục đến thư mục hiện tại dưới dạng thư mục con sourcedir/. Nó sẽ không chạm vào các tệp đã có và có cùng dấu thời gian/nội dung. Các -N tùy chọn có nghĩa là nó chỉ chạy khô nên bạn có thể xem nó sẽ làm gì (cùng với -vdài dòng). Một khi bạn hài lòng với những gì nó sẽ làm, hãy chạy nó mà không cần -N:

rsync -av /some/where/sourcedir .

Bạn có thể gọi nó nhiều lần; nếu nó không còn làm gì nữa, thì nó đã hoàn thành tốt đẹp và thực sự.

Bạn cũng có thể xóa bỏ các tệp không còn trong cây thư mục nguồn với --xóa bỏ:

rsync -av --delete /some/where/sourcedir .

Nếu bạn thêm một dấu gạch chéo vào đường dẫn nguồn, nó sẽ không tạo ra một sourcedir/ thư mục con trên đích, nhưng sao chép nó trực tiếp vào thư mục con đó. Cùng với --xóa bỏ, nó tạo một bản sao 1:1 của cây đó trong thư mục hiện tại, đồng thời xóa mọi thứ không có trong cây con nguồn:

rsync -av --delete /some/where/sourcedir/ .

Một lần nữa, thêm -N để xem những gì nó sẽ làm. Nói chung, tôi khuyên bạn nên luôn luôn sử dụng -N đầu tiên để xác nhận rằng nó sẽ làm những gì bạn muốn nó làm.

Có rất nhiều lựa chọn khác (như --loại trừ=); xem người đàn ông rsync.

Điểm:0
lá cờ cn

Bạn có thể thực hiện điều này với tìm thấy và một trong hai cp với --bố mẹ, điều này yêu cầu ../target phải tồn tại.

(nguồn cd dựng sẵn; find -type f \
  -newermt '18 tháng 12 năm 2020' -exec cp --parents -at ../target {} +)

Tùy chọn thứ hai sử dụng cpio cái nào hiệu quả hơn. Trong khi ví dụ trước sử dụng đĩa CD để loại bỏ điểm khởi đầu trước khi sao chép, chúng tôi thực hiện điều này với một -printf chỉ thị và cpio -D. Và điều này sẽ không yêu cầu mục tiêu hiện có trước khi sao chép.

tìm nguồn/ -mindepth 1 -depth -type f \
  -newermt '18 tháng 12 năm 2020' -printf %P\0 | cpio -0 -pvdm -D nguồn/đích

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.