Я использую CentOS 5.5 и хотел бы переместить большое количество папок в пределах одного тома, сохранив их mtime
.
Лучшее решение, которое я смог найти, это:
cp -p -r source/data target/
rm -rf source/data
С более чем 1 ТБ данных на общем ресурсе NFS копирование занимает вечность. Я не хочу копировать. Я хочу мгновенного движения.
Когда я перемещаю папку, используя mv source/data target/
, mtime
папки (а не файлов) устанавливается на текущее время. Это потому, что содержимое папки, которую я перемещаю, модифицируется этой операцией (запись ..
указывает на другой индекс).
Я придумал следующий сценарий оболочки, который я назвал mv_preserve_mtime.sh
:
#!/bin/bash
# Moves source folder to target folder.
# You are responsible for making sure the target does not exist, otherwise this blows up
export timestamp=`stat -c %y $1`
mv "$1" "$2"
touch --date="${timestamp}" $2
Ну, это тоже не сработало. mtime
папки восстанавливается, но все папки в папке, которую я перемещаю (только 1 уровень глубины), получают сброс mtime
по причинам, которые я не понимаю.
У кого-нибудь есть правильное, эффективное и правильное решение?