Tôi gặp sự cố với các thuộc tính tệp do tôi đã thay đổi hệ thống tệp của công ty mình từ Ubuntu 12 cũ sang NAS Synology.
Ban đầu, tôi đã gắn các cổ phiếu NFS trên hệ thống tệp cũ của mình, sau đó với cp, tôi đã sao chép mọi thứ, mọi thứ đều ổn. Nhưng tôi quên giữ nguyên các thuộc tính và chúng tôi đã mất đặc biệt là ngày, ngày trở thành ngày sao chép chứ không phải ngày thực.
Tôi đã tìm thấy lệnh rsync rsync -vrt --size-only /src /dest Nhưng một số tệp đã bị sửa đổi kể từ khi sao chép và lệnh sẽ ghi đè lên chúng...
Ví dụ: tôi đã cố gắng tạo một tệp trên hệ thống tệp cũ, sao chép tệp đó trên hệ thống tổng hợp mới, sau đó sửa đổi tệp trên hệ thống tổng hợp. Khi tôi sử dụng rsync, tệp sẽ bị xóa và thay thế bằng phiên bản cũ.
Tôi đang tìm kiếm một lệnh, chỉ sao chép dấu thời gian cho các tệp khi tệp có cùng kích thước (chưa được sửa đổi)
Không có vấn đề gì nếu phải mất nhiều thời gian
Chỉnh sửa :
Tôi đã thử giải pháp được đề xuất với một thư mục thử nghiệm, không có lỗi nhưng không có bất kỳ thay đổi nào:
old_base=/home/samba/shares/projects/test
new_base=/mnt/NAS
cp $old_base $new_base -rv
`/home/samba/shares/projects/test/1201.txt' -> `/mnt/NAS/test/1201.txt'
`/home/samba/shares/projects/test/test.txt' -> `/mnt/NAS/test/test.txt'
`/home/samba/shares/projects/test/1200.txt' -> `/mnt/NAS/test/1200.txt'
`/home/samba/shares/projects/test/1202/1202.txt' -> `/mnt/NAS/test/1202/1202.txt'
Bây giờ cơ sở mới của tôi giống với cơ sở cũ, nhưng không có dấu thời gian giống như thực tế
Tôi sửa đổi một tệp, thêm nội dung để mô phỏng tệp được chỉnh sửa do tôi đã sao chép mọi thứ
Sau đó, tôi áp dụng giải pháp của bạn:
root@xx:/mnt/NAS/test# cd $old_base; tìm thấy . -loại f | xargs ls -s | sắp xếp -k 2,2 >/tmp/old
root@xx:/home/samba/shares/projects/test# cd $new_base; tìm thấy . -loại f | xargs ls -s | sắp xếp -k 2,2 >/tmp/new
root@xx:/mnt/NAS# comm -12 /tmp/old /tmp/new | trong khi đọc kích thước tên tệp; chạm vào ${new_base}/${filename} -r ${old_base}/${filename}; xong
comm: tập tin 2 không được sắp xếp theo thứ tự
comm: tập tin 1 không theo thứ tự được sắp xếp
Tôi không có lỗi, nhưng không có bất kỳ thay đổi nào
(tôi không chắc bạn muốn nói gì về ${filename} nhưng tôi cũng đã cố gắng thay thế nó bằng ${new_base}/*
Chỉnh sửa: 22/07
Tôi không có bất kỳ kết quả khi tôi sử dụng
comm -12 --nocheck-order /tmp/old /tmp/new