Mam miliony zdjęć na moim serwerze w chmurze ubuntu. Kiedy przenoszę cały folder zawierający 12 milionów obrazów za pomocą mv
polecenia, dzieje się to niemal natychmiast. Kiedy jednak mv
tylko obrazy (nie folder) to zajmuje trochę czasu. Czy istnieje sposób na przeniesienie wszystkich obrazów tak szybko, jak foldery?
Oto co się dzieje:
Folder src ma 12 milionów obrazów i przenoszę go do folderu dst za pomocą
$ mv src ../dst
Zdarza się natychmiast
W folderze src robię to, aby przenieść:
find -maxdepth 1 -name '*.jpg' -exec mv -t ../../dst/ {} +
To zajmuje trochę czasu.
Czy istnieje sposób na przyspieszenie drugiego procesu?
dst
jest na partycji, podczas gdy ../../dst
na innej.
{}
argumentu, w którym nazwa (-y) pliku (-ów) zostałaby rozwinięta.
find
. find ... -exec mv -t ../../dst/ {} \;
zadzwoniłby mv
raz na plik; find ... -exec mv -t ../../dest {} +
byłoby znacznie szybsze, kopiowanie jak największej liczby plików na połączenie, ale nadal nie tak szybkie, jak przenoszenie samego katalogu, jak wyjaśniono w dadexix86 .