Tôi có hàng triệu hình ảnh trên máy chủ đám mây ubfox của mình. Khi tôi di chuyển một thư mục hoàn chỉnh chứa 12 triệu hình ảnh bằng mv
lệnh, nó sẽ xảy ra gần như ngay lập tức. Tuy nhiên, khi tôi mv
chỉ hình ảnh (không phải thư mục) thì phải mất một thời gian. Có cách nào để di chuyển tất cả các hình ảnh nhanh như thư mục không?
Đây là những gì đang xảy ra:
thư mục src có 12 triệu hình ảnh và tôi chuyển nó sang thư mục dst bằng
$ mv src ../dst
Xảy ra ngay lập tức
Trong thư mục src tôi làm điều này để di chuyển:
find -maxdepth 1 -name '*.jpg' -exec mv -t ../../dst/ {} +
Điều này cần một chút thời gian.
Có cách nào để tăng tốc quá trình thứ hai không?
dst
là trong một phân vùng trong khi đó ../../dst
là trên một phân vùng khác.
{}
đối số nào trong đó tên tệp sẽ được mở rộng.
find
. find ... -exec mv -t ../../dst/ {} \;
sẽ gọi mv
một lần cho mỗi tệp; find ... -exec mv -t ../../dest {} +
sẽ nhanh hơn nhiều, sao chép càng nhiều tệp trên mỗi cuộc gọi càng tốt, nhưng vẫn không nhanh bằng việc di chuyển thư mục như được giải thích bởi Dadexix86 .