Estou usando um script Bash personalizado em execução em uma máquina Linux para duplicar em massa unidades USB formatadas em FAT32.
Eu preciso preservar atributos de arquivo do Windows, como "oculto".
Eu uso rsync
(ou dd
com find
e mkdir
na versão mais recente para forçar a sincronização de E / S para melhor estabilidade e uso ideal da largura de banda).
Eu tentei cegamente -X
e -A
troque rsync
, que dizem preservar alguns atributos de arquivo, mas eles não parecem funcionar para os atributos de arquivo do Windows.
Existe alguma maneira de ler e gravar atributos de arquivo do Windows em um ambiente Linux?
Eu poderia aplicá-los após a cópia, se não houver uma maneira mais fácil.
Não quero dd
um sistema de arquivos de origem inteiro, porque isso não será otimizado, especialmente quando você precisa gravar centenas de unidades. Às vezes, as unidades têm 16 GB de capacidade e apenas alguns GB de arquivos - e um idiota dd
copiava todos os 16 GB, demorando muito para que isso funcionasse na produção.
Eu pesquisei na web, mas parece que os atributos estendidos do Linux não têm nada a ver com os atributos de arquivo do Windows e não encontrei nenhuma maneira de ler e escrever essas informações (ou simplesmente copiá-las com os arquivos).
rsync
ou operação manualfind
/mkdir
/ quedd
eu uso agora.fatattr
uma implementação de uma ferramenta usando estes.Respostas:
Eu posso pensar em algumas maneiras de lidar com isso.
O primeiro é usar o Mtools para copiar os arquivos. Para que isso funcione, você precisa definir "unidades" (digamos A: para a unidade de origem, B: para o destino), então você poderá copiar tudo, preservando atributos e registros de data e hora, usando
(não testado).
O segundo é pós-processar os atributos usando
fatattr
(que está disponível na maioria das distribuições). Ele lida com sistemas de arquivos montados, para que você copie seus sistemas de arquivos da mesma maneira que faz atualmente, usefatattr
para listar todos os atributos FAT de todos os arquivos de origem e analise-os para instruirfatattr
a definir os atributos adequadamente nos arquivos de destino .fonte
mcopy
, ele travou ao tentar copiar a pasta "Informações do volume do sistema", gerando um erro do GCC "pilha quebrada detectada". Então, eu vou tentar usarfatattr
.