Quando você move um arquivo dentro do mesmo sistema de arquivos, mv
desanexa o arquivo do local antigo e o anexa ao novo local; metadados, como permissões, permanecem os mesmos. Quando você move um arquivo para um sistema de arquivos diferente, mv
copia o arquivo, tenta replicar o máximo de metadados possível e remove o original.
Como você está migrando para um sistema de arquivos diferente e não deseja replicar muitos metadados, copie o arquivo e remova o original.
cp "$backupfile" "$destination" && rm "$backupfile"
Isso preserva as permissões do arquivo até certo ponto (por exemplo, legibilidade do mundo, executabilidade). A hora da modificação do arquivo não é preservada. Com o GNUcp
, você pode usar a --preserve=…
opção para controlar quais metadados são replicados mais finamente, por exemplo --preserve=mode,timestamps
.
Você também pode usar rsync
e dizer o que deseja preservar. A opção -a
significa "preservar a maioria dos metadados", que inclui o proprietário se estiver sendo executado apenas como raiz.
rsync -a --no-owner --no-group --remove-source-files "$backupfile" "$destination"