URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 45217
[ Назад ]

Исходное сообщение
"Как изменить время модификации файла (директории)?"

Отправлено Alex , 17-Июн-04 14:28 
Существует ли команда для изменения таких атрибутов файла, как время модификации, время создания?
Зачем это мне понадобилось: хочу сделать backup каталога, содержащего много других вложенных папок, причём помещать в него только файлы с размером меньше некоторого заданного. Как я это делаю: сначала создаю копию дерева каталогов (с помощью find и mkdir), потом заполняю его файлами (с помощью find и cp). Но вот беда: все каталоги в backup'е получаются с одинаковым временем создания, а хочется, чтобы они сохранили время создания исходных каталогов. Как быть?

Содержание

Сообщения в этом обсуждении
"Как изменить время модификации файла (директории)?"
Отправлено Antonio , 17-Июн-04 14:43 
man touch

"Как изменить время модификации файла (директории)?"
Отправлено ihor , 17-Июн-04 14:45 
можно просто обойтись tar-ом:
напр.
find /usr/local -size -20 > /tmp/flist.txt
tar -cvzf /tmp/backup.tgz --files-from /tmp/list.txt

а вообще, время создания/модификации можно изменить при помощи touch:
man touch


"Как изменить время модификации файла (директории)?"
Отправлено lavr , 17-Июн-04 14:48 
>можно просто обойтись tar-ом:
>напр.
>find /usr/local -size -20 > /tmp/flist.txt
>tar -cvzf /tmp/backup.tgz --files-from /tmp/list.txt

не можно, а нужно, зачем огород городить (или cpio или pax или fsbackup) ;)

>а вообще, время создания/модификации можно изменить при помощи touch:
>man touch


"Как изменить время модификации файла (директории)?"
Отправлено Alex , 18-Июн-04 18:53 
Спасибо за советы!!


>>find /usr/local -size -20 > /tmp/flist.txt
>>tar -cvzf /tmp/backup.tgz --files-from /tmp/flist.txt
Это не помогло, потому что если в списке flist.txt оставить имена директорий, то tar их забирает целиком, а это не то, что нужно.
А если директории убрать из flist.txt, то tar их создаёт, когда нужно, но устанавливает им текущее время в качестве времени модификации, а мне хочется сохранить времена такими же, как у исходных директорий.


>>man touch
Это помогло. Получилось вот что:

s=/home/alex
d=/tmp/backup_10k
cd $s
mkdir $d
find ./ -type d -exec mkdir $d/{} ";" -print   # создаём дерево каталогов
find ./ -type f -size -10k -exec cp -p {} $d/{} ";" -print # копируем файлы
find $d -depth -type d -empty -exec rmdir {} ";" -print # удаляем пустые каталоги (начиная с самого глубокого уровня)
cd $d
find ./ -type d -exec touch -r $s/{} {} ";" -print # меняем время создания/модификации каталогов
tar cvzf $d.tgz .                                  # архивируем