Detecteer hoofdlettergevoelige bestandsnaam-botsingen door elk relatief pad te inventariseren, elk pad te normaliseren volgens de vergelijkingsregels van de bestemming en paden te groeperen die dezelfde genormaliseerde sleutel opleveren. Los elke groep op voordat je data kopieert.
Deze preflight is essentieel bij het verplaatsen van een hoofdlettergevoelige Linux-share naar Windows, standaard macOS-volumes of hoofdletterongevoelige SMB-naamruimten. Een normale telling van bestanden onthult niet dat twee geldige bron-namen strijden om één bestemmingsnaam.
Wat telt als een bestandsnaam-botsing?
Een botsing doet zich voor wanneer verschillende bronpaden door de bestemming als hetzelfde pad worden behandeld. Een praktische herinnering aan verschillen in hoofdlettergevoeligheid tussen platforms laat zien waarom Report.pdf en report.pdf zich anders kunnen gedragen, maar de vergelijking moet elke mapcomponent omvatten.
Cross-platform conflicten kunnen ook Unicode-normalisatie, achtervoegende spaties of punten, gereserveerde apparaatsnamen en tekens die door een bestemming verboden zijn, omvatten. De oorzaken van naamswijzigingen tussen macOS en Linux horen bij dezelfde pad-compatibiliteitsaudit.
Definieer de bestemming voordat je gaat scannen. Een kopie naar ext4, NTFS of een SMB-ondersteunde dataset kan ander naamgevingsgedrag blootleggen. Dit hangt samen met waarom SMB-gedrag verschilt tussen clients.
Welke botsingstypen moeten in het preflight-rapport worden opgenomen?
Scheid botsingscategorieën zodat de oplossing voorspelbaar is. Een paar dat alleen in hoofdletters verschilt kan meestal worden hernoemd, terwijl een gereserveerde Windows-naam mogelijk zowel hernoemen als een update van de applicatiereferentie vereist.
| Type botsing | Voorbeeld | Waarom kopiëren onveilig is |
|---|---|---|
| Alleen hoofdletterverschil |
Foto.jpg en photo.jpg
|
Hoofdletterongevoelige bestemming ziet één naam |
| Hoofdlettergevoeligheid van mapcomponenten |
Client/A en client/A
|
Hele subbomen kunnen samensmelten |
| Unicode-normalisatie | Visueel identieke samengestelde en ontbonden namen | macOS en netwerklagen kunnen anders normaliseren |
| Afgeknipte tekens |
notities en notities.
|
Sommige Windows-paden negeren achtervoegende punten of spaties |
| Gereserveerde naam | CON.txt |
Bestemmings-API kan creatie weigeren |
Het rapport moet het originele byte-niveau pad behouden en een leesbare vorm weergeven. Visueel identieke Unicode-namen kunnen anders lijken op een dubbele regel in plaats van twee verschillende bronvermeldingen.
Hoe Bouw Je een Betrouwbare Broninventaris?
Voer de inventarisatie uit op het bronbestandssysteem of via hetzelfde protocol dat voor migratie wordt gebruikt. Exporteer relatieve paden in een formaat dat veilig omgaat met spaties, tabs, nieuwe regels en niet-ASCII tekens.
Neem mappen mee omdat twee botsende mapnamen duizenden getroffen bestanden kunnen verbergen. Registreer objecttype, grootte, wijzigingstijd en een stabiele identifier indien beschikbaar zodat hernoemde items kunnen worden getraceerd.
Bevries schrijfacties of maak een snapshot voordat de definitieve scan wordt uitgevoerd. Als namen veranderen tussen inventarisatie en kopiëren, kan een schone preflight verouderd raken voordat de migratie begint.
Hoe Moeten Paden Genormaliseerd Worden voor Vergelijking?
Begin met het case-folding gedrag van de bestemming. Vergelijk een kleine letter- of case-folded sleutel terwijl het originele pad behouden blijft voor rapportage. Hernoem de bron niet automatisch tijdens deze stap.
Voeg vervolgens bestemmingsspecifieke regels toe: Unicode-normalisatie, scheidingstekens, verboden tekens, afgekorte achtervoegsels, padlengtebeperkingen en gereserveerde namen. Te agressief normaliseren ten opzichte van de bestemming kan valse positieven veroorzaken, terwijl te weinig normaliseren destructieve botsingen kan missen.
Pas normalisatie toe op elk padcomponent. Twee bestanden met verschillende basenames botsen nog steeds als hun bovenliggende mappen samenvallen tot hetzelfde genormaliseerde pad.
Wat Kun Je Uitvoeren op Linux, macOS of Windows?
Op Linux of macOS kan een script null-gescheiden paden lezen, een bestemmingssleutel berekenen, sorteren op die sleutel en groepen rapporteren met meer dan één origineel pad. Gepubliceerde methoden voor het vinden van dubbele bestandsnamen ongeacht hoofdletters illustreren de groeplogica, maar meertalige archieven hebben expliciete Unicode-afhandeling nodig.
find /source -print0 | python3 collision_scan.py --target windows
Op Windows kan PowerShell relatieve paden enumereren en groeperen met een ordinale case-insensitieve vergelijker. Voer het uit tegen de bronshare met een account dat elke bedoelde map kan zien.
Get-ChildItem -LiteralPath '\\NAS\Source' -Recurse -Force |
ForEach-Object { $_.FullName.Substring($root.Length).ToLowerInvariant() } |
Group-Object | Where-Object Count -gt 1
Deze voorbeelden illustreren het groeperingsmodel, niet een universele scanner. Productiecontroles moeten originelen behouden, ontoegankelijke paden afhandelen en de volledige naamgevingsregels van de doelomgeving implementeren.
Hoe los je botsingsgroepen op?
Kies een canonieke naam met de data-eigenaar, hernoem dan de andere paden met een deterministische suffix zoals een projectcode, datum of bron-systeemtag. Consistente naamgevingsregels voor home servers helpen willekeurige suffixen te vermijden.
- Exporteer de botsingsgroep en de bijbehorende afdeling of applicatie.
- Selecteer het pad dat de canonieke spelling behoudt.
- Hernoem conflicterende paden op de bron of in een staged kopie.
- Werk afspeellijsten, databases, snelkoppelingen, scripts en manifesten bij die ernaar verwijzen.
- Voer de volledige scan opnieuw uit totdat er geen blokkerende groepen meer zijn.
Sta niet toe dat het kopieerhulpmiddel stilzwijgend beslist door overschrijfvolgorde. Zelfs als beide bestandsinhouden identiek zijn, vernietigt het stilzwijgend samenvoegen van namen het bewijs over de oorspronkelijke naamruimte.
Hoe verifieer je dat de kopie paden niet heeft samengevoegd?
Maak een pre-kopie manifest na herstel en genereer een bestemmingsmanifest met dezelfde regels voor relatieve paden. Vergelijk genormaliseerde padsets, objectaantallen, groottes en inhoudshashes voor kritieke bestanden.
Bekijk kopieerlogboeken op “bestaat al,” hernoemen, overslaan, ongeldige naam en overschrijfgebeurtenissen. Een nul exitcode kan nog steeds gepaard gaan met overgeslagen paden, afhankelijk van het hulpmiddel.
Houd de bron alleen-lezen totdat gebruikers het gedrag van de applicatie valideren. Compatibiliteit van de naamruimte omvat links en verwijzingen, niet alleen de aanwezigheid van bestandsbytes.
FAQ
Kunnen twee bestandsnamen die alleen verschillen in hoofdletters op Linux bestaan?
Meestal wel op gangbare case-sensitive Linux-bestandssystemen. Ze kunnen botsen wanneer ze worden gekopieerd naar een case-insensitieve bestemming of via een anders geconfigureerde dienst worden blootgesteld.
Is het omzetten van elke bestandsnaam naar kleine letters een veilige oplossing?
Nee. Massaal omzetten naar kleine letters kan nieuwe conflicten veroorzaken en verwijzingen breken. Detecteer eerst groepen, pas dan beoordeelde, deterministische hernoemingen toe.
Detecteren checksums bestandsnaamconflicten?
Checksums vergelijken inhoud, niet de identiteit van de naamruimte. Twee verschillende paden kunnen verschillende of identieke inhoud hebben en toch concurreren om één bestemmingsnaam.
Een veilige cross-platform kopie bewijst dat elk bronpad naar één unieke, geldige bestemmingspad leidt. Voer die controle uit vóór de overdracht in plaats van botsingen te ontdekken door overschreven bestanden.
Ondersteuning & Tips
Meer om te lezen

Waarom Wordt een RAID-array Inactief Na een Stroomuitval?
Een inactieve array betekent vaak dat er metadata is gevonden, maar dat het systeem niet genoeg vertrouwen of leden had om deze veilig te...

Wat zijn de risico's van het geforceerd weer online brengen van een ontbrekend RAID-lid?
Force-opties kunnen veiligheidscontroles rond verouderde metadata, vuile pariteit, ontbrekende schrijfacties of actieve pools omzeilen; controleer en bewaar bewijs voordat u ze gebruikt.

Hoe herken je een slechte SATA-kabel van een defecte NAS-schijf?
Volg of fouten de schijf volgen of bij het SATA-pad blijven, en scheid transporttellers van media-gezondheidsgegevens voordat je hardware vervangt.

