{
  "slug": "file-birth-time",
  "term": "File birth time",
  "aliases": [
    "btime",
    "Birth time",
    "File creation time"
  ],
  "definition": "File birth time (btime) is a filesystem timestamp recording file creation, distinct from modification time and inode change time.",
  "note": "On Linux, stat() does not return btime. statx() can return it as stx_btime where supported. Request STATX_BTIME and check that the returned stx_mask contains STATX_BTIME before interpreting the value; a successful call does not guarantee that every requested field was supplied. [linux-statx]\n\nAvailability depends on the kernel and filesystem. Do not substitute ctime for missing birth time. [linux-inode]",
  "related": [
    "inode",
    "file-modification-time",
    "inode-change-time",
    "file-access-time"
  ],
  "citations": [
    {
      "id": "linux-inode",
      "title": "Linux man-pages: inode(7)",
      "url": "https://man7.org/linux/man-pages/man7/inode.7.html",
      "accessed": "2026-10-21"
    },
    {
      "id": "linux-statx",
      "title": "Linux man-pages: statx(2), requested and returned fields",
      "url": "https://man7.org/linux/man-pages/man2/statx.2.html",
      "accessed": "2026-10-21"
    },
    {
      "id": "hesela-file-times",
      "title": "Hesela: interpreting file timestamps during rsync selection",
      "url": "https://hesela.com/analyses/rsync-delta-shifted-blocks/#file-times",
      "accessed": "2026-10-21"
    }
  ],
  "status": "shipping",
  "advantages": [
    "Separates recorded file creation from later content and inode-status changes."
  ],
  "limitations": [
    "Not exposed by the traditional Linux stat() structure.",
    "May be unavailable even when statx() succeeds."
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-21"
}
