Berikut adalah metode cepat dan kotor menggunakan rsync
. Untuk contoh ini saya menganggap apa pun di bawah 10 MB menjadi "kecil".
Transfer pertama hanya file kecil:
rsync -a --max-size=10m srcdir dstdir
Kemudian transfer file yang tersisa. File kecil yang sebelumnya ditransfer tidak akan disalin ulang kecuali jika diubah.
rsync -a srcdir dstdir
Dari man 1 rsync
--max-size=SIZE
This tells rsync to avoid transferring any file that is larger
than the specified SIZE. The SIZE value can be suffixed with a
string to indicate a size multiplier, and may be a fractional
value (e.g. "--max-size=1.5m").
This option is a transfer rule, not an exclude, so it doesn’t
affect the data that goes into the file-lists, and thus it
doesn’t affect deletions. It just limits the files that the
receiver requests to be transferred.
The suffixes are as follows: "K" (or "KiB") is a kibibyte
(1024), "M" (or "MiB") is a mebibyte (1024*1024), and "G" (or
"GiB") is a gibibyte (1024*1024*1024). If you want the multi‐
plier to be 1000 instead of 1024, use "KB", "MB", or "GB".
(Note: lower-case is also accepted for all values.) Finally, if
the suffix ends in either "+1" or "-1", the value will be offset
by one byte in the indicated direction.
Examples: --max-size=1.5mb-1 is 1499999 bytes, and
--max-size=2g+1 is 2147483649 bytes.
Tentu saja, urutan transfer file per file tidak sepenuhnya terkecil hingga terbesar, tapi saya pikir itu mungkin solusi paling sederhana yang memenuhi semangat kebutuhan Anda.