A inconsistência de arquivo ... não aparece em 'ls -a', mas existe?

1

Eu executei rsync (3.0.6) no Mac OS X 10.6 (Snow Leopard) para fazer backup de uma pasta de um disco rígido externo (FAT32) para outro disco rígido externo (FAT32). De alguma forma certos arquivos (e às vezes eles mudam!) São copiados com um nome de arquivo diferente. Por exemplo:

campo_2006_valcanale_127.jpg --> CAMPO~40.JPG

Encolhida e maiúscula, é claro que o rsync da próxima vez exclui o CAMPO ~ 40.JPG e o copia novamente, mas quase sempre fica confuso novamente. Às vezes funciona, mas também arquivos que foram bem corrompidos.

Agora, se eu for no diretório de destino e fizer um ls -a , não consigo ver o arquivo campo_2006_valcanale_127.jpg porque ele foi renomeado, mas o arquivo campo_2006_valcanale_127.jpg realmente existe! Eu posso mostrar, eu posso escrever sobre isso, etc ... simplesmente é invisível! Talvez seja apenas o nome do arquivo que está se comportando de maneira estranha…

Eu tenho o mesmo comportamento quando copio os arquivos manualmente (usando cp ) e até mesmo quando copio eles com o “Finder!” Eu arrasto e solto um arquivo e seu nome muda!

Se você tiver alguma dica , por favor me avise ... Eu posso fornecer mais informações se necessário.

    
por luca 06.01.2010 / 23:26

1 resposta

1

Os nomes de arquivos abreviados são artefatos do FAT32; qualquer arquivo com um nome maior do que os antigos 8.3 recebe um nome abreviado, como você viu. Use um sistema de arquivos adequado, um que manipule nomes de arquivos longos nativamente, em vez de usar um hack bizarro, e você não terá esse problema (por exemplo, NTFS, HFS, ext - todos manipular nomes de arquivos longos nativamente). A Wikipedia tem mais detalhes sobre o Long Filename que o FAT32 usa

O FAT32 também tem outros problemas que dificultam o funcionamento do rsync - por exemplo, ele não armazena timestamps com grande precisão, então o rsync não pode usar sua heurística normal.

A FAQ do rsync tem uma entrada no rsync copiando os mesmos arquivos várias vezes. Em suma, é provavelmente o timestamp que está causando a maior parte da nova sincronização; modify-window=1 ou talvez modify-window=2 deve corrigir isso.

    
por 06.01.2010 / 23:41