Właśnie próbowałem przenieść duże drzewo z jednego dysku na drugi, które było zbyt małe. Teraz pozostaje mi coś, czego tak naprawdę nie rozumiem - wygląda na to, że niektóre pliki zostały rzeczywiście przeniesione z drzewa źródłowego, podczas gdy inne zostały właśnie skopiowane. Najprawdopodobniej nie jest to prawdą i po prostu coś przeoczam, tak jak to zrobiłem, kiedy sprawdzam wolne miejsce na dysku docelowym. :RE
Polecenie było po prostu mv source-dir destination-dir
, gdzie oba katalogi znajdują się na różnych dyskach. Używam mv (GNU coreutils) 7.4
. Nigdzie na stronie podręcznika nie znalazłem odpowiedzi na następujące pytania:
- czy mogą zostać utworzone obcięte pliki?
- czy w przypadku błędów coś w drzewie źródłowym zostanie usunięte?
- jak odzyskać (w łatwy i szybki sposób)?
mv src1 src2 dst
pod tym względem działa podobniemv src1 dst; mv src2 dst
i każdy z nichmv src dst
jest podobnycp -a src dst && rm -rf src
?cp -a
jest już rekurencyjny, wątpię, czy dotyczy on pojedynczych plików i katalogów znalezionych podczas przeszukiwania drzewa. Zrobię kilka testów później.Kiedy mv przenosi się do innego systemu plików, najpierw kopiuje wszystkie dane do nowego systemu plików. Po skopiowaniu nowych danych usuwa stare dane. Oznacza to, że jeśli przeniesienie zostanie przerwane z powodu niepowodzenia, lokalizacja źródłowa powinna nadal zawierać wszystkie dane.
Jeśli chodzi o odzyskiwanie, tylko dane docelowe powinny być uszkodzone. Zamiast ponownie użyć mv, po prostu użyj rsync, a następnie rm ręcznie
źródło