martedì 2 ottobre 2012

OS X ed il problema dei file Case Sensitive

Se c'è una cosa che odio di OS X ed il suo file system è il suo essere incoerentemente case insensitive per default; lasciando perdere le questioni filosofiche ed andando al nocciolo del problema, quello che va detto è che un volume HFS+ può anche essere formattato come Case Sensitive, è esplicitamente previsto dalle opzioni di utility disco, così molto tempo fa, avendo una mole di diversi gigabyte di roba proveniente da Linux, decisi di tenere questa "roba" su una partizione separata, appunto Case Sensitive.
Ora, per questioni di praticità, ho deciso di spostare gran parte di questi dati su un unico disco, quello di avvio, perché voglio un solo disco ed una sola partizione.

Il problema era quindi individuare i file che potevano impedire la copia completa e corretta dei dati, ovvero andare a cercare i vari file Pippo, PIPPO e pippo, decidendo sul da farsi prima della migrazione.

Lo script in python qui di seguito è quello che serve:

#!/usr/bin/env python

import os

for root, dirs, files in os.walk('.'):
    content = dirs + files
    for s1 in content:
        for s2 in content:
            if s1 != s2 and s1.lower() == s2.lower():
                print os.path.join(root,s1)