this post was submitted on 21 Apr 2025
31 points (89.7% liked)
Linux
53682 readers
595 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 6 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
It is not recursive though. A directory is a special kind of inode that enumerates file inode numbers and when that list changes then the contents of that "directory inode" change. But if /home/user/.bashrc is deleted then the timestamp for /home will not be affected because the timestamps are associated with inodes rather than directory entries (assuming no symbolic links are involved).
https://www.redhat.com/en/blog/inodes-linux-filesystem https://en.wikipedia.org/wiki/inode
Yeah, good point. It also doesn't update when the content of a file changes. So, in order to detect a change in a directory, you have to walk all the files and sub-directories and the directory itself to get the last-modified timestamp for each of them. Then determine the highest last-modified and compare it to what you measured in a previous run. If they differ, a change happened.