{
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-17",
  "slug": "rename-noreplace",
  "term": "RENAME_NOREPLACE",
  "aliases": [],
  "definition": "RENAME_NOREPLACE is a Linux renameat2 flag that rejects a rename when its destination already exists.",
  "note": "An existing destination yields EEXIST; filesystem support is required. Do not substitute an existence check followed by ordinary rename: that permits a competing creation between the operations. [rename]\n\nIn Hesela's local run, a collision preserved both files and a subsequent move to an absent name retained the source inode. [observation]",
  "related": [
    "atomic-rename",
    "o-tmpfile",
    "rename-exchange",
    "directory-fsync"
  ],
  "citations": [
    {
      "id": "rename",
      "title": "Linux man-pages: rename(2), renameat2 flags",
      "url": "https://man7.org/linux/man-pages/man2/rename.2.html",
      "accessed": "2026-10-17"
    },
    {
      "id": "observation",
      "title": "Hesela: rename flag observations",
      "url": "https://hesela.com/analyses/tmpfile-publication-rename-contracts/#observation",
      "accessed": "2026-10-17"
    }
  ]
}
