В оболочке Linux, как я могу изменить время создания всех файлов папки на текущее время?
3 ответа
Перейдите к рассматриваемой папке, скажем, ~/Documents/myfiles.
$ cd ~/Documents/myfiles
Затем сделайте:
$ touch *
Это изменит время модификации, когда вы выполняете эту команду.
Очевидно, вы можете сделать это более конкретным в зависимости от вашего варианта использования, например,
$ touch *.doc
только изменит время модификации для файлов со строкой '.doc' в их имени.
В Linux, если вы хотите сделать что-то рекурсивное в каталоге, или вы хотите применить некоторые действия к файлам, отвечающим некоторым критериям, вам следует попробовать find
и xargs
Нажмите на все файлы в ~/Documents/myfiles (включая файлы в подкаталоге)
find ~/Documents/myfiles -type f -print0 | xargs -0 touch
ОП запросил время создания, но ответы Яна Янга и Боэджа основаны на touch
команды, устанавливающей время модификации, доступа и изменения текущего времени.
Как boehj сказал (в комментарии) нет времени создания файла ... Это верно для большинства файловых систем, но в некоторых современных файловых системах (например, ext4) время создания (или рождения) файла хранится в inode.
Поэтому мы можем дать более правильный ответ, скрупулезно соблюдая заголовок вопроса:
cp -a your-folder tmp-folder
rm -rf your-folder
mv tmp-folder your-folder
Это изменит время создания (время рождения ) на текущее время. Это также обновляет время изменения, но сохраняет неизменным время изменения и доступа .
Для информации время изменения иногда сокращается как ctime
и может быть перепутано со временем создания (crtime
или btime
). Фактически время изменения файла - это время изменения его соответствующего inode. Поэтому команды, изменяющие содержимое inode
как chmod
или chattr
также устанавливают время изменения на текущее время.