POSIX mv
non fornisce alcuna opzione per richiedere la conservazione atime/mtime, ma poiché l'operazione è locale su uno stesso volume, puoi chiedere cp
per usare hard-link invece di copiare i dati dei file normali usando il -l
opzione:
cp -p -r -l source/date target/
rm -rf source/data
Poiché solo le directory ei riferimenti ai file verranno effettivamente copiati, dovrebbe andare molto più veloce:
Per maggiori informazioni sugli hard-link, puoi consultare la corrispondente pagina di Wikipedia
Per quanto riguarda il motivo per cui le sottodirectory mtime vengono reimpostate con la tua soluzione attuale, è perché ottieni e ripristini solo la directory principale mtime :touch non è un comando ricorsivo.
Un'altra soluzione potrebbe essere:
rsync -a --remove-source-files source/data target/