2

В оболочке Linux, как я могу изменить время создания всех файлов папки на текущее время?

3 ответа3

4

Перейдите к рассматриваемой папке, скажем, ~/Documents/myfiles.

$ cd ~/Documents/myfiles

Затем сделайте:

$ touch *

Это изменит время модификации, когда вы выполняете эту команду.

Очевидно, вы можете сделать это более конкретным в зависимости от вашего варианта использования, например,

$ touch *.doc

только изменит время модификации для файлов со строкой '.doc' в их имени.

3

В Linux, если вы хотите сделать что-то рекурсивное в каталоге, или вы хотите применить некоторые действия к файлам, отвечающим некоторым критериям, вам следует попробовать find и xargs

Нажмите на все файлы в ~/Documents/myfiles (включая файлы в подкаталоге)

find ~/Documents/myfiles -type f -print0 | xargs -0 touch
2

ОП запросил время создания, но ответы Яна Янга и Боэджа основаны на 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 также устанавливают время изменения на текущее время.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .