Même fichier, taille de fichier différente

12

J'ai fait une sauvegarde à partir de mon serveur FTP, avec lftp et Transmit (application Mac). Tout va bien, mais la taille du fichier est différente pour 1-2 fichiers, mais ils sont identiques.

Premier fichier:

http://dl.dropbox.com/u/229956/deadcow_seo.php

Deuxième fichier:

http://dl.dropbox.com/u/229956/deadcow_seo.php_2.php

Quelle est la différence entre ces deux fichiers?

user66638
la source
Êtes-vous sûr que le problème n'était pas uniquement la taille signalée ? Apple a changé la façon dont Mac OS X rapporte l'espace de stockage il y a quelques années pour correspondre à la méthode utilisée par les fabricants de disques durs. Au lieu de 1 Mo = 1024 Ko, ils utilisent 1 Mo = 1000 Ko. L'autre taille peut être signalée par votre hôte Linux en utilisant l'autre méthodologie, de sorte que les fichiers semblent être de tailles différentes. Je ne sais pas si cela s'applique à votre cas, mais c'est quand même intéressant.
WebDevKev
Ce n'est pas ça. Regardez simplement les fichiers qu'il a fournis dans le cadre de la question, ou la capture d'écran diff dans ma réponse. Les fichiers ne sont pas assez gros pour que cela fasse une différence, à 1800-1900 octets chacun.
Daniel Beck

Réponses:

25

deadcow_seo.phputilise les fins de ligne Unix ( LF), tandis que les deadcow_seo.php_2.phpfins de ligne DOS / Windows ( CR LF).

FTP a plusieurs "modes de transfert", dont deux sont couramment utilisés 1 - binaire (également appelé "image") et texte (ou "ASCII"). En mode "binaire", le fichier est transféré exactement tel qu'il est, octet par octet, tandis que "ASCII" fait interpréter le fichier comme composé de lignes de texte - les fins de ligne sont converties au standard réseau CR LFlors de l'envoi, et convertis aux fins de ligne natives de la machine lors de la réception.

Le transfert de fichiers sous forme de texte peut avoir un certain sens au début, mais cela ne cause que des problèmes plus tard - en fait, certains serveurs FTP l'ont complètement supprimé ou le rendent équivalent au binaire côté serveur. En outre, la plupart des éditeurs de texte (à l'exception du Bloc-notes) peuvent lire et enregistrer des fichiers aux formats Windows et Unix.

Configurez simplement votre client FTP pour toujours utiliser le mode binaire - la commande est généralement binou mode i, tandis que les clients graphiques peuvent avoir une case à cocher ou une liste de types de fichiers dans leurs paramètres.


1 Certains anciens modes sont "tenex" ( obsolète depuis longtemps , pour les fichiers basés sur des pages TENEX) et "compressés" (qui semble être défini comme un simple algorithme RLE). Les serveurs FTP récents prennent en charge le "mode z" pour la compression zlib.

user1686
la source
12

Vous avez utilisé le mode de transfert de texte (ou ASCII), qui remplace les sauts de ligne pendant le transfert. Cela est souvent utile lorsque vous développez des scripts et des programmes sous Windows et transférez les fichiers vers Linux ou Mac OS X. Ils ne fonctionneront tout simplement pas autrement, car le système voit les données inutiles à la fin de chaque ligne.

Si le fichier contient un seul saut de ligne Windows \r\n(ou CRLF) et que vous l'avez téléchargé sur Linux ou Mac OS X, il a été remplacé par \n(ou LF), ce qui représente 1 octet de moins. L'utilisation de FileMerge pour comparer les fichiers le confirme dans la barre d'état:

entrez la description de l'image ici

Voir également cette réponse sur l'interprétation des données .


Vous pouvez configurer les types de fichiers qui sont interprétés comme du texte dans les préférences de Transmit:

entrez la description de l'image ici

Vous pouvez supprimer toutes les extensions de fichier de cette liste, et simplement standardiser sur les sauts de ligne Linux / Mac OS X, c'est \n-à- dire même lorsque vous utilisez Windows. La plupart des éditeurs sont capables de changer le mode de fin de ligne.

Daniel Beck
la source