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?
Réponses:
deadcow_seo.php
utilise les fins de ligne Unix (LF
), tandis que lesdeadcow_seo.php_2.php
fins 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 LF
lors 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
bin
oumode 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.
la source
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
(ouCRLF
) et que vous l'avez téléchargé sur Linux ou Mac OS X, il a été remplacé par\n
(ouLF
), ce qui représente 1 octet de moins. L'utilisation de FileMerge pour comparer les fichiers le confirme dans la barre d'état: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:
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.la source