Gdy przenosisz plik w tym samym systemie plików, mv
odłącza on plik od jego starej lokalizacji i dołącza go do nowej lokalizacji; metadane, takie jak uprawnienia, pozostają takie same. Gdy przenosisz plik do innego systemu plików, mv
kopiuje go, próbuje replikować jak najwięcej metadanych, jak to możliwe, i usuwa oryginał.
Ponieważ przenosisz się do innego systemu plików i nie chcesz replikować dużej ilości metadanych, równie dobrze możesz skopiować plik, a następnie usunąć oryginał.
cp "$backupfile" "$destination" && rm "$backupfile"
Zachowuje to do pewnego stopnia uprawnienia do pliku (np. Czytelność na świecie, wykonywalność). Czas modyfikacji pliku nie jest zachowywany. Dzięki GNUcp
możesz użyć --preserve=…
opcji, aby lepiej kontrolować, które metadane są replikowane dokładniej, np --preserve=mode,timestamps
.
Możesz także użyć rsync
i powiedzieć, co chcesz zachować. Ta opcja -a
oznacza „zachowaj większość metadanych”, w tym właściciela, jeśli działa tylko jako root.
rsync -a --no-owner --no-group --remove-source-files "$backupfile" "$destination"