यहां एक त्वरित और गंदे तरीके का उपयोग किया गया है rsync
। इस उदाहरण के लिए मैं 10 एमबी से कम "छोटा" होने पर विचार कर रहा हूं।
पहली छोटी फ़ाइलों को स्थानांतरित करें:
rsync -a --max-size=10m srcdir dstdir
फिर बची हुई फाइलों को ट्रांसफर करें। जब तक वे संशोधित नहीं किए गए पहले से स्थानांतरित की गई छोटी फ़ाइलों को फिर से कॉपी नहीं किया जाएगा।
rsync -a srcdir dstdir
से 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.
बेशक, ट्रांसफर फाइल-बाय-फाइल का आदेश सख्ती से सबसे बड़ा नहीं है, लेकिन मुझे लगता है कि यह सबसे सरल समाधान हो सकता है जो आपकी आवश्यकताओं की भावना को पूरा करता है।