Nic złego by nie było, zastanawiałem się po prostu jak by to najlepiej zrobić.
Po głowie chodziły mi dwie możliwości: tar i rsync
Ilość plików na jakiej testowałem: 1064001 - zwykłe czyste pliki o wadze 0 bajtów tworzone za pomocą touch.
Maszyna testowa:
Procesor: Intel(R) Xeon(R) CPU E5410 @ 2.33GHz
RAM: 2 GB
System: Debian Wheezy 3.2.0-4-686-pae
Polecenie rsync:
Kod: Zaznacz cały
rsync -d --remove-source-files /home/test/sub1/ /home/test/
Tara ogarnąłem takim niezbyt eleganckim skryptem:
Kod: Zaznacz cały
#!/bin/bash
cd /home/test/sub1
for i in {1..1000}
do
if [ `ls -l | wc -l` -gt "0" ]; then
tar --remove-files -cf ../arch$i.tar `ls -l | head -n 64000 | awk '{print $9}'`
else
cd /home/test
for file in ./*.tar ;do tar -xf $file ; done
exit 0
fi
done
Czasowo wykonywanie tego wygląda tak:
W sumie już samo:
chwilę trwało, więc nie jest to specjalnie miarodajne a na chwilę obecną nie miałem pomysłu jakby to można było inaczej zrobić.