Cuando mueve un archivo dentro del mismo sistema de archivos, mv
separa el archivo de su ubicación anterior y lo adjunta a su nueva ubicación; metadatos como los permisos siguen siendo los mismos. Cuando mueve un archivo a un sistema de archivos diferente, mv
copia el archivo, intenta replicar tantos metadatos como sea posible y elimina el original.
Como se está moviendo a un sistema de archivos diferente y no desea replicar muchos metadatos, también podría copiar el archivo y luego eliminar el original.
cp "$backupfile" "$destination" && rm "$backupfile"
Esto conserva los permisos del archivo hasta cierto punto (por ejemplo, legibilidad mundial, ejecubilidad). El tiempo de modificación del archivo no se conserva. Con GNUcp
, puede usar la --preserve=…
opción para controlar qué metadatos se replican más finamente, por ejemplo --preserve=mode,timestamps
.
También puede usar rsync
y decirle lo que desea conservar. La opción -a
significa "preservar la mayoría de los metadatos", que incluye al propietario si se ejecuta solo como root.
rsync -a --no-owner --no-group --remove-source-files "$backupfile" "$destination"