Been using Fedora as my daily driver for work. Plus I also have clients use Fedora.
One thing I have noticed is that when copying a file or folder from 1 folder to another such as from /home to say /home/Downloads is that the created on the copied file becomes the current date and does not use the original Date created from the original file.
On Windows when copying a file or folder, the copied file and folder has the original date created and is essentially an exact like for like.
From what I have read up on this, is partly due to the file system used and the fact that Linux kernel does not have some form of a way of setting birth time i.e. date created.
But from what I don’t quite follow is btrfs should support setting birth filename but the Linux kernel does not.
So my main question is what work has there been done in the Linux kernel to address this limitation, and how would one go about getting the right people and helping to develop and implement such a fix?
I am on my cell phone and can’t type that much but out of interest I asked a LLM chatbot - I think it gave a good answer. Here it is:
DISCLAIMER: The following text has been created using Google’s Gemini
[…] a common technical confusion in Linux: the difference between Modification Time (mtime) and Creation/Birth Time (btime).
The Short Answer
In Fedora (and Linux in general), when you copy a file, the system creates a brand-new file (a new “inode”) on the destination disk. By definition, this new file’s “Birth” or “Creation” date is the moment it was just created. Standard Linux tools like cp and rsync can preserve the Modification Date, but there is currently no standard way to “faking” or “copying” a Creation Date to a new file.
Understanding the different timestamps
Linux tracks four main timestamps for every file. You can see them by running stat filename in your terminal:
Access (atime): When the file was last read.
Modify (mtime): When the content of the file was last changed. (This is what most people mean by “Date”).
Change (ctime): When the metadata (permissions, owner, etc.) was last changed.
Birth (btime): When the file was first created on that specific filesystem.
Why “Date Created” changes
When you copy a file:
The OS creates a new entry on the disk.
The filesystem assigns a new “Birth” time to that entry (the current time).
The cp command then copies the actual data from the old file to the new one.
If you use the archive flag (cp -a), the command will manually set the Modify time to match the original, but it cannot set the Birth time because the Linux kernel does not provide a standard way to change it.
How to preserve the dates that can be kept
If your goal is to ensure the Modified Date (which most photo viewers and documents use to sort) stays the same, you must use specific flags:
Terminal (Recommended): Use the archive flag -a.
cp -a /source/path /destination/path
This preserves modification time, permissions, and ownership.
GUI (Files/Nautilus): Standard copy-paste usually preserves the modification time, but some file managers or external drives (like FAT32/ExFAT) may handle this inconsistently.
Rsync: If you are moving large amounts of data:
rsync -tav /source/ /destination/
The -t flag specifically ensures times are preserved.
Can you ever preserve the “Birth” date?
Technically, no—not through a simple copy. The only ways to keep a “Birth” date are:
Moving the file: If you move a file within the same partition (e.g., from ~/Downloads to ~/Documents), the “inode” remains the same, so the creation date doesn’t change.
Filesystem Snapshots: On Fedora (which uses Btrfs by default), using btrfs send and btrfs receive to move subvolumes will preserve the original creation timestamps exactly, as it is a block-level transfer rather than a file-level copy.
Archiving: Putting files into a .zip or .tar file will “freeze” their modification dates inside the archive, but when you extract them, the newly created files will still get a new “Birth” date for the current time.
Summary
If you see the “Date Created” as “Today” in your file manager, look for the “Date Modified” column instead. In the Linux world, mtime (Modified) is considered the “real” age of the file’s content, while btime (Birth) is just the age of that specific copy on your disk.
Common Linux filesystems capture file modification date (as well as the metadata change time). Some newer filesystems also capture ”birth” time. cp -p uses the modification date of the source file. https://www.baeldung.com/linux/file-age-and-modification-time has some examples.
I am a LONG time user of the cinnamon spin and have configured the file manager to list files/directories by MODIFICATION date and in descending order. One benefit is visual evidence if I inadvertently copy a file to a directory other than the intended one.
When using the CLI, i use the command cp -avp which copies and preserves the metadata of the file/directory structure being copied.
I believe that using the GUI has the same effect as cp -avp.