Filenames can change between macOS and Linux even when the file contents remain identical.
The usual causes are Unicode normalization, different case-sensitivity rules, and SMB rewriting of characters that another client cannot represent safely. Identify the visual pattern first, then test a small copy before renaming an entire archive.
The Name May Look the Same but Be Stored Differently
Accented characters can be encoded as one composed code point or as a base letter plus a combining mark. Those NFC and NFD forms may look identical on screen while backup tools, scripts, databases, or Linux applications treat the byte sequences as different names.
A transfer utility may normalize names during copy, making the destination spelling appear changed or causing a later sync to report a rename. Compare Unicode code points rather than relying only on Finder or a terminal listing.
| Visible symptom | Likely cause | Safe test |
|---|---|---|
| Accents split or look unusual | Unicode normalization | Compare NFC/NFD code points |
| Only letter case changes | Case-rule mismatch | Scan for case-folded duplicates |
| Name becomes short with a tilde | SMB name mangling | Check unsupported characters |
Case Sensitivity Creates Collisions and Case-Only Renames
Default macOS volumes are commonly case-insensitive but case-preserving, while common Linux filesystems are case-sensitive. Linux can therefore store Photo.jpg and photo.jpg in one directory even when the macOS destination cannot treat them as separate names.
Case-only renames may also be hidden from a tool running on macOS, then reappear after the files reach Linux. Before migration, generate a case-folded list and resolve duplicates with a reversible naming map.
SMB Can Rewrite Unsupported Characters
Network protocols and clients apply their own filename rules. A name created through an older Mac workflow can contain characters that another SMB client rejects, triggering SMB name mangling for unsupported characters such as a shortened alphanumeric form with a tilde.
Do not disable mangling blindly. The original name may remain unusable to Windows or another client, and applications that stored the old path may still need relinking after any rename.
Normalize and Audit Names Before the Full Move
Inventory the source for Unicode normalization differences, case-folded duplicates, trailing spaces or dots, reserved names, control characters, and protocol-specific symbols. Copy a representative sample with the exact production tool and compare file hashes separately from path names.
Keep a source-to-destination rename manifest so scripts, media libraries, and project files can be relinked. Also account for extended attributes during NAS migration, because filenames are only one layer of cross-platform metadata that a copy tool may transform or omit.
FAQ
Does filename normalization change file contents?
No. It changes the representation of the path name, not the bytes inside the file. Verify contents with hashes and names with a separate manifest.
Why are only accented filenames affected?
Many accented characters have both composed and decomposed Unicode forms. Plain ASCII letters usually have only one relevant representation, so the mismatch stays invisible there.
Can two Linux files collapse into one on macOS?
They can collide when their names differ only by case or normalize to the same form. Detect and rename collisions before copying so neither file is skipped or overwritten.
Support & Tips
More to Read

Live TV Recording Storage Guide for Capacity, Retention, and Cleanup
Measure real recordings, reserve headroom, combine age and capacity limits, and prove the oldest eligible program is removed before storage fills.

Home Media Metadata Recovery Workflow After a Database Restore
Protect the restored state, verify media identity and paths, then repair missing artwork or matches in a pilot library before broad metadata changes.

Jellyfin Client Compatibility Checklist for Audio, Video, and Subtitles
Test representative files one variable at a time and record Direct Play, remux, audio conversion, video transcode, or failure for every client.

