При переміщенні файлу в одній і тій же файловій системі він mv
від'єднує файл зі свого старого місця та приєднує його до нового місця розташування; метадані, такі як дозволи, залишаються тими ж. При переміщенні файлу в іншу файлову систему mv
копіюється файл, намагається повторити якомога більше метаданих та видаляє оригінал.
Оскільки ви переходите до іншої файлової системи і не хочете копіювати багато метаданих, ви також можете скопіювати файл, а потім видалити оригінал.
cp "$backupfile" "$destination" && rm "$backupfile"
Це певною мірою зберігає дозволи файлу (наприклад, читабельність, виконання). Час модифікації файлу не збережено. За допомогою GNUcp
ви можете використовувати --preserve=…
опцію, щоб контолювати метадані, які реплікуються більш тонко, наприклад --preserve=mode,timestamps
.
Ви також можете використовувати rsync
та розповісти, що ви хочете зберегти. Параметр -a
означає "зберегти більшість метаданих", що включає власника, якщо він працює лише як root.
rsync -a --no-owner --no-group --remove-source-files "$backupfile" "$destination"