Dear all, please let me know if I am wrong here.
I am trying to compress and extract a tar archive while trying to maintain the modification timestamp in nanoseconds. The files are from a make system that if the timestamps are not correctly restored will cause a rebuild of some very time consuming components - that is the gist of it. The simple test scenario below shows where I think the timestamp accuracy appears to get lost touch test.txt stat test.txt File: test.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 8,1 Inode: 24520316 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ oliver) Gid: ( 1000/ oliver) Access: 2026-02-17 11:39:28.366000000 +0000 Modify: 2026-02-17 11:39:28.366000000 +0000 Change: 2026-02-17 11:39:28.366000000 +0000 Birth: 2026-02-17 11:25:59.010000000 +0000 tar --full-time --utc --format=gnu --verbose -cf test.tar test.txt -rw-r--r-- oliver/oliver 0 2026-02-17 11:39:28.366 test.txt tar --full-time --utc --format=gnu --verbose -tf test.tar -rw-r--r-- oliver/oliver 0 2026-02-17 11:39:28 test.txt mkdir -p test && tar --full-time --utc --format=gnu --verbose -xf test.tar -C test -rw-r--r-- oliver/oliver 0 2026-02-17 11:39:28 test.txt stat test.txt test/test.txt File: test.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 8,1 Inode: 24520316 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ oliver) Gid: ( 1000/ oliver) Access: 2026-02-17 11:39:28.366000000 +0000 Modify: 2026-02-17 11:39:28.366000000 +0000 Change: 2026-02-17 11:39:28.366000000 +0000 Birth: 2026-02-17 11:25:59.010000000 +0000 File: test/test.txt Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 8,1 Inode: 24649659 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ oliver) Gid: ( 1000/ oliver) Access: 2026-02-17 11:44:08.410000000 +0000 Modify: 2026-02-17 11:39:28.000000000 +0000 Change: 2026-02-17 11:44:08.410000000 +0000 Birth: 2026-02-17 11:44:08.410000000 +0000 It appears that at step 3 the timestamp in nanoseconds is not stored in the archive test.tar and from this moment onwards is lost. My system is Debian GNU/Linux 12 (bookworm), running on and Intel PC and the filesystem is ext4. uname -a shows Linux work-vm 6.1.0-42-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.159-1 (2025-12-30) x86_64 GNU/Linux Is there anything that I do wrong or is this a bug I stumbled upon? - perhaps a configuration issue? Thank you very much in advance looking into this. Kind regards, Oliver
