Bash

Änderungs- und Erstellungsdaten von Linux-Dateien in Bash ändern

Dieser Artikel stellt vor, wie man die Änderungszeit (mtime) und Erstellungszeit (ctime) von Dateien in Bash auf der Linux-Befehlszeile ändert. Es gibt Fälle, in denen Sie die Dateiänderungszeit aktualisieren möchten, ohne in die Datei zu schreiben oder darauf zuzugreifen.

Shou Arisaka
2 Min. Lesezeit
28. Okt. 2025

Dieser Artikel stellt vor, wie man die Änderungszeit (mtime) und Erstellungszeit (ctime) von Dateien in Bash auf der Linux-Befehlszeile ändert.

Es gibt Fälle, in denen Sie die Dateiänderungszeit aktualisieren möchten, ohne in die Datei zu schreiben oder darauf zuzugreifen.

Allerdings scheint es, dass Sie Dateien nicht mit printf oder echo aktualisieren können, sodass es besser ist, die hier erklärte Methode zu verwenden, es sei denn, Sie möchten etwas Mühsames tun wie Zeichen hinzufügen und entfernen.

# Eine Newline wird zur Datei hinzugefügt
echo "" >> "${TIME_MANAGEMENT_DIR}/time_management.txt"

# Es werden keine Änderungen an der Datei vorgenommen, aber auch die Änderungszeit wird nicht geändert.
printf "" >> "${TIME_MANAGEMENT_DIR}/time_management.txt"

Lassen Sie uns zunächst die aktuelle Änderungszeit und Zugriffszeit einer Datei mit stat überprüfen.

$stat  "${TIME_MANAGEMENT_DIR}/time_management.txt"
  File: '/mnt/c/time_management/time_management.txt'
  Size: 385             Blocks: 0          IO Block: 4096   regular file
Device: 11h/17d Inode: 336362597169482697  Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/    yuis)   Gid: ( 1000/    yuis)
Access: 2019-06-29 14:59:40.666044600 +0900
Modify: 2019-06-29 14:59:40.666044600 +0900
Change: 2019-06-29 14:59:40.666044600 +0900

Um die Zugriffszeit zu ändern, verwenden Sie touch -a.

$ /bin/touch -a --date="@1561788231" "${TIME_MANAGEMENT_DIR}/time_management.txt"

# // `1561788231` ... `date +%s`
$ /bin/touch --help
-a                     change only the access time
-d, --date=STRING      parse STRING and use it instead of current time
-m                     change only the modification time

Es hat sich geändert.

$ stat "${TIME_MANAGEMENT_DIR}/time_management.txt"
  File: '/mnt/c/time_management/time_management.txt'
  Size: 385             Blocks: 0          IO Block: 4096   regular file
Device: 11h/17d Inode: 336362597169482697  Links: 1
Access: (0777/-rwxrwxrwx)  Uid: ( 1000/    yuis)   Gid: ( 1000/    yuis)
Access: 2019-06-29 15:03:51.000000000 +0900
Modify: 2019-06-29 14:59:40.666044600 +0900
Change: 2019-06-29 15:04:49.266605100 +0900
 Birth: -

Ähnlich wie oben verwenden Sie touch -m für die Änderungszeit.

/bin/touch -m --date="@$( date +%s )" "${TIME_MANAGEMENT_DIR}/time_management.txt" 

Linux - Fake File Access, Modify and Change TimeStamps - ShellHacks

Diesen Artikel teilen

Shou Arisaka 28. Okt. 2025

🔗 Links kopieren