J'utilise un script Bash personnalisé exécuté sur une machine Linux pour dupliquer en masse des lecteurs USB au format FAT32.
J'ai besoin de préserver les attributs de fichier Windows tels que "caché".
J'utilise rsync
(ou dd
avec find
et mkdir
dans une version plus récente pour forcer la synchronisation des E / S pour une meilleure stabilité et une utilisation optimale de la bande passante).
J'ai aveuglément essayé -X
et -A
change pour rsync
, qui sont censés conserver certains attributs de fichier, mais ils ne semblent pas fonctionner pour les attributs de fichier Windows.
Existe-t-il un moyen de lire et d'écrire des attributs de fichier Windows dans un environnement Linux?
Je pourrais les appliquer après la copie s'il n'y a pas de moyen plus simple.
Je ne veux pas dd
un système de fichiers source complet, car cela ne sera pas optimisé, surtout lorsque vous devez écrire des centaines de lecteurs. Parfois, les disques ont une capacité de 16 Go, et seulement quelques Go de fichiers sur eux - et un idiot dd
copierait tous les 16 Go, prenant trop de temps pour que cela fonctionne en production.
J'ai cherché sur le Web, mais il semble que les attributs étendus Linux n'aient rien à voir avec les attributs de fichiers Windows, et je n'ai trouvé aucun moyen de lire et d'écrire ces informations (ou simplement de les copier avec les fichiers).
rsync
ou manuelfind
/mkdir
/dd
opération que j'utilise en ce moment.fatattr
pour une implémentation d'un outil utilisant ces derniers.Réponses:
Je peux penser à deux façons de gérer cela.
La première consiste à utiliser Mtools pour copier les fichiers. Pour que cela fonctionne, vous devez définir des «lecteurs» (disons A: pour le lecteur source, B: pour la cible), puis vous devriez pouvoir tout copier, en préservant les attributs et les horodatages, en utilisant
(non testé).
La seconde consiste à post-traiter les attributs à l'aide de
fatattr
(qui est disponible dans la plupart des distributions). Il gère les systèmes de fichiers montés, vous devez donc copier vos systèmes de fichiers de la même manière que vous le faites actuellement, puis les utiliserfatattr
pour répertorier tous les attributs FAT de tous les fichiers source, et les analyser pour demanderfatattr
de définir les attributs de manière appropriée sur les fichiers cibles .la source
mcopy
, il s'est écrasé en essayant de copier le dossier "System Volume Information" provoquant une erreur GCC "smashing stack stack found". Je vais donc essayer d'utiliserfatattr
.