Upptäck skiftlägeskänsliga filnamnskollisioner genom att inventera varje relativ sökväg, normalisera varje sökväg enligt destinationens jämförelseregler och gruppera sökvägar som ger samma normaliserade nyckel. Lös varje grupp innan data kopieras.
Denna förhandsgranskning är avgörande när man flyttar från en skiftlägeskänslig Linux-delning till Windows, standardvolymer på macOS eller skiftlägesokänsliga SMB-namnrymder. En vanlig filräkning avslöjar inte att två giltiga källnamn konkurrerar om ett destinationsnamn.
Vad räknas som en filnamnskollision?
En kollision uppstår när olika källvägar behandlas som samma väg av destinationen. En praktisk påminnelse om skillnader i skiftlägeskänslighet mellan plattformar visar varför Report.pdf och report.pdf kan bete sig olika, men jämförelsen måste inkludera varje katalogkomponent.
Plattformsöverskridande konflikter kan också involvera Unicode-normalisering, avslutande mellanslag eller punkter, reserverade enhetsnamn och tecken som en destination förbjuder. Orsakerna till filnamnsändringar mellan macOS och Linux hör hemma i samma kompatibilitetsgranskning av sökvägar.
Definiera målet innan skanning. En kopia till ext4, NTFS eller en SMB-baserad dataset kan visa olika namngivningsbeteenden. Detta är relaterat till varför SMB-beteendet skiljer sig mellan klienter.
Vilka kollisions typer bör förhandsgranskningsrapporten visa?
Separera kollisionskategorier så att åtgärderna blir förutsägbara. Ett par som skiljer sig endast i skiftläge kan vanligtvis byta namn, medan ett reserverat Windows-namn kan kräva både namnbyte och uppdatering av applikationsreferenser.
| Typ av kollision | Exempel | Varför kopiering är osäker |
|---|---|---|
| Endast skiftläge |
Photo.jpg och photo.jpg
|
Skiftlägesokänslig destination ser ett namn |
| Skiftlägeskänslighet i katalogkomponenter |
Client/A och client/A
|
Hela underträd kan slås samman |
| Unicode-normalisering | Visuellt identiska sammansatta och uppdelade namn | macOS och nätverkslager kan normalisera olika |
| Bortklippta tecken |
anteckningar och anteckningar.
|
Vissa Windows-sökvägar ignorerar avslutande punkter eller mellanslag |
| Reserverat namn | CON.txt |
Destinationens API kan vägra skapande |
Rapporten bör bevara den ursprungliga byte-nivå sökvägen och visa en läsbar form. Visuellt identiska Unicode-namn kan annars se ut som en dubblettrad istället för två distinkta källposter.
Hur bygger du en pålitlig källinventering?
Kör inventeringen på källfilssystemet eller via samma protokoll som används för migrering. Exportera relativa sökvägar i ett format som säkert hanterar mellanslag, tabbar, radbrytningar och icke-ASCII-tecken.
Inkludera kataloger eftersom två kolliderande katalognamn kan dölja tusentals påverkade filer. Registrera objekttyp, storlek, ändringstid och en stabil identifierare när det är tillgängligt så att omdöpta objekt kan spåras.
Frys skrivningar eller ta en ögonblicksbild innan den slutgiltiga skanningen. Om namn ändras mellan inventering och kopiering kan en ren förkontroll bli föråldrad innan migreringen börjar.
Hur bör sökvägar normaliseras för jämförelse?
Börja med destinationens skiftlägesbeteende. Jämför en gemener eller skiftlägesvikad nyckel samtidigt som den ursprungliga sökvägen behålls för rapportering. Byt inte namn på källan automatiskt under detta steg.
Lägg sedan till destinationsspecifika regler: Unicode-normalisering, separatorhantering, förbjudna tecken, bortklippta suffix, sökvägslängdsgränser och reserverade namn. Att normalisera mer aggressivt än destinationen kan skapa falska träffar, medan att normalisera mindre kan missa destruktiva kollisioner.
Applicera normalisering på varje sökvägskomponent. Två filer med olika basnamn kolliderar fortfarande om deras överordnade kataloger kollapsar till samma normaliserade sökväg.
Vad kan du köra på Linux, macOS eller Windows?
På Linux eller macOS kan ett skript läsa null-avgränsade sökvägar, beräkna en destinationsnyckel, sortera efter den nyckeln och rapportera grupper med mer än en ursprunglig sökväg. Publicerade metoder för att hitta dubblettfilnamn oavsett skiftläge illustrerar grupperingslogiken, men flerspråkiga arkiv behöver explicit Unicode-hantering.
find /source -print0 | python3 collision_scan.py --target windows
På Windows kan PowerShell lista relativa sökvägar och gruppera dem med en ordningsbaserad skiftlägesokänslig jämförare. Kör det mot källandelen med ett konto som kan se varje avsedd katalog.
Get-ChildItem -LiteralPath '\\NAS\Source' -Recurse -Force |
ForEach-Object { $_.FullName.Substring($root.Length).ToLowerInvariant() } |
Group-Object | Where-Object Count -gt 1
Dessa exempel illustrerar grupperingsmodellen, inte en universell skanner. Produktionskontroller måste bevara original, hantera otillgängliga vägar och implementera målets fullständiga namngivningsregler.
Hur bör du lösa kollisionsgrupper?
Välj ett kanoniskt namn med dataägaren, och byt sedan namn på de andra vägarna med ett deterministiskt suffix som en projektkod, datum eller källsystemtagg. Konsekventa namngivningsregler för hemservrar hjälper till att undvika godtyckliga suffix.
- Exportera kollisionsgruppen och dess ägande avdelning eller applikation.
- Välj den väg som behåller den kanoniska stavningen.
- Byt namn på konfliktvägar i källan eller i en förberedd kopia.
- Uppdatera spellistor, databaser, genvägar, skript och manifest som refererar till dem.
- Kör om hela skanningen tills inga blockerande grupper återstår.
Tillåt inte kopieringsverktyget att tyst avgöra genom överskrivningsordning. Även om båda filinnehållen är identiska förstör tyst kollaps av namn bevis om den ursprungliga namnrymden.
Hur verifierar du att kopieringen inte har kollapsat vägar?
Ta en förkopieringsmanifest efter åtgärder och generera en destinationsmanifest med samma regler för relativa vägar. Jämför normaliserade vägsamlingar, objekträkningar, storlekar och innehållshashar för kritiska filer.
Granska kopieringsloggar för ”finns redan”, namnändring, hoppad, ogiltigt namn och överskrivningshändelser. En nollavslutningskod kan fortfarande följa med hoppade vägar beroende på verktyget.
Behåll källan skrivskyddad tills användare validerar applikationsbeteendet. Namnrymdskompatibilitet inkluderar länkar och referenser, inte bara förekomsten av filbytesdata.
Vanliga frågor
Kan två filnamn som skiljer sig endast i skiftläge existera på Linux?
Vanligtvis ja på vanliga skiftlägeskänsliga Linux-filsystem. De kan kollidera när de kopieras till en skiftlägesokänslig destination eller exponeras via en tjänst med annan konfiguration.
Är det en säker lösning att konvertera alla filnamn till gemener?
Nej. Massomvandling till gemener kan skapa nya kollisioner och bryta referenser. Identifiera grupper först, och tillämpa sedan granskade, deterministiska namnändringar.
Kan kontrollsummor upptäcka filnamnskollisioner?
Kontrollsummor jämför innehåll, inte namnrymdsidentitet. Två olika vägar kan ha olika eller identiskt innehåll och ändå tävla om ett destinationsnamn.
En säker plattformsoberoende kopiering bevisar att varje källväg motsvarar en unik, giltig destinationsväg. Utför det beviset innan överföringen istället för att upptäcka kollisioner genom överskrivna filer.
Support och tips
Mer att läsa

Varför blir en RAID-array inaktiv efter ett strömavbrott?
En inaktiv array betyder ofta att metadata hittades men att systemet inte hade tillräckligt med förtroende eller medlemmar för att starta den säkert efter...

Vilka är riskerna med att tvinga en saknad RAID-medlem att komma online igen?
Tvångsalternativ kan kringgå säkerhetskontroller kring föråldrad metadata, smutsig paritet, saknade skrivningar eller aktiva pooler; undersök och bevara bevis innan du använder dem.

Hur man skiljer en dålig SATA-kabel från en felande NAS-enhet
Spåra om fel följer med disken eller stannar kvar i SATA-vägen, och separera transporträknare från bevis på mediehälsa innan hårdvara byts ut.

