Как я могу изменить дату 'изменения' файла?

Я закончил тем, что проверил пополудни-utils файл журнала, потому что это работает out-of-the-box. Однако это зависит от форматирования пополудни-utils сообщения журнала, таким образом, это могло порвать с новыми версиями пополудни-utils.

Это в настоящее время работает над Дугой Linux и OpenSuSE 11.4/Tumbleweed и вероятно все другие дистрибутивы, которые не исправили пополудни-utils слишком много.

Следующие кодовые наборы NEED_SUSPEND к 1, если машина была разбужена от, приостанавливают в течение прошлых 10 минут (600 секунд):

# Check if we need to suspend afterwards
if [[ -e /var/log/pm-suspend.log ]]; then
    RESUME_DATE="$(egrep 'Running hooks for (resume|thaw)' /var/log/pm-suspend.log | tail -n 1 | sed 's/^\(.*\):.*$/\1/')"
    if [[ -n "$RESUME_DATE" ]]; then
        RESUME_SECS="$(date --date="$RESUME_DATE" +%s)"
        NOW_SECS="$(date +%s)"
        SECS_SINCE_RESUME=$(( $NOW_SECS - $RESUME_SECS ))
        if [[ $SECS_SINCE_RESUME -lt 600 ]]; then
            NEED_SUSPEND=1
        fi
    fi
fi
23
10.04.2012, 03:33
5 ответов

Вы не можете изменить ctime обычными средствами. Это дизайном: ctime всегда обновляется к току, когда Вы изменяете любые из метаданных файла, и нет никакого способа наложить другой ctime. Для изменения ctime файла необходимо выполнить одно из следующих действий:

  • Установите системное время на ctime, который Вы хотите наложить, затем коснуться файла, затем сбросить системное время.
  • Измените ядро для добавления интерфейса для изменения ctime.
  • Получите доступ к образу диска непосредственно (например, с debugfs) и вертите биты на диске (не делайте этого, в то время как файловая система смонтирована).
24
27.01.2020, 19:42

ctime файла обновляется, когда любые из метаданных изменяются.

$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26  2010 x.py
$ stat -c %z x.py
2010-03-26 11:57:56.237068175 -0400
$ chown ignacio x.py
$ stat -c %z x.py
2012-04-08 15:31:33.682383575 -0400
$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26  2010 x.py
4
27.01.2020, 19:42
  • 1
    , но как изменяют его без обновления он –  Someone1234 08.04.2012, 23:11

У Вас есть ответ на связанном ТАК вопрос, на который указывает jw013, для extX, на размонтированном диске:

# Update ctime
debugfs -w -R 'set_inode_field /tmp/foo ctime 201001010101' /dev/sda1

# Drop vm cache so ctime update is reflected
echo 2 > /proc/sys/vm/drop_caches
12
27.01.2020, 19:42

Я использую lnдля этого случая. Метаданные изменяются для увеличения и уменьшения счетчика ссылок.

# $file contains the filename
ln "$file" "$file.xxx.tmp"
rm -f "$file.xxx.tmp"

Здесь я использую .xxx.tmpкак расширение для временного файла и надеюсь, что оно не будет использоваться другим.

0
20.08.2021, 13:27

$NOW=$(date) && date -s "2030-08-15 21:30:11" && touch file.txt && date -s "$NOW"

https://www.shellhacks.com/fake-file-access-modify-change-timestamps-linux

3
20.08.2021, 13:27

Теги

Похожие вопросы