Stesso file, dimensioni file diverse


12

Ho effettuato un backup dal mio server FTP, con lftp e Transmit (app per Mac). Va tutto bene, ma c'è una dimensione del file diversa per 1-2 file, ma sono identici.

Primo file:

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

Secondo file:

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

Qual è la differenza tra questi due file?


Sei sicuro che il problema non riguardasse solo le dimensioni riportate ? Apple ha cambiato il modo in cui Mac OS X segnala lo spazio di archiviazione un paio di anni fa per abbinare il metodo utilizzato dai produttori di dischi rigidi. Invece di 1 MB = 1024 KB, usano 1 MB = 1000 KB. Le altre dimensioni possono essere segnalate dall'host Linux usando l'altra metodologia, pertanto i file sembrano avere dimensioni diverse. Non sono sicuro se questo vale nel tuo caso, ma è comunque interessante.
WebDevKev,

Non è quello. Guarda i file che ha fornito come parte della domanda o lo screenshot di diff nella mia risposta. I file non sono abbastanza grandi da fare la differenza, tra l'altro, a 1800-1900 byte ciascuno.
Daniel Beck

Risposte:


25

deadcow_seo.phpusa i finali di linea Unix ( LF), mentre deadcow_seo.php_2.phpusa i finali di linea DOS / Windows ( CR LF).

FTP ha diverse "modalità di trasferimento", di cui due sono di uso comune 1 - binario (chiamato anche "immagine") e testo (o "ASCII"). In modalità "binaria" il file viene trasferito esattamente com'è, byte per byte, mentre "ASCII" fa sì che il file venga interpretato come costituito da righe di testo: le terminazioni di riga vengono convertite nello standard di rete CR LFdurante l'invio e convertito in terminazioni di linea native della macchina durante la ricezione.

Il trasferimento di file come testo potrebbe inizialmente avere un senso, ma in seguito causa problemi - in effetti, alcuni server FTP lo hanno rimosso completamente o lo rendono equivalente al binario sul lato server. Inoltre, la maggior parte degli editor di testo (escluso il Blocco note) è in grado di leggere e salvare file in formato Windows e Unix.

Configura il tuo client FTP in modo che utilizzi sempre la modalità binaria: il comando è generalmente bino mode i, mentre i client grafici potrebbero avere una casella di controllo o un elenco di tipi di file nelle loro impostazioni.


1 Alcune vecchie modalità sono "tenex" (a lungo obsoleto, per i file basati su pagine TENEX) e "compresse" (che sembra essere definito come un semplice algoritmo RLE). I server FTP recenti supportano "mode z" per la compressione zlib.


12

È stata utilizzata la modalità di trasferimento di testo (o ASCII), che sostituisce le interruzioni di riga durante il trasferimento. Ciò è spesso utile quando si sviluppano script e programmi su Windows e si trasferiscono i file su Linux o Mac OS X. Semplicemente non funzioneranno altrimenti, poiché il sistema vede i dati inutili alla fine di ogni riga.

Se il file ha una singola interruzione di linea di Windows, \r\n(o CRLF) e hai scaricato su Linux o Mac OS X, è stato sostituito da \n(o LF), che è 1 byte in meno. L'uso di FileMerge per confrontare i file lo conferma nella barra di stato:

inserisci qui la descrizione dell'immagine

Vedi anche questa risposta sull'interpretazione dei dati .


È possibile configurare quali tipi di file vengono interpretati come testo nelle preferenze di Trasmissione:

inserisci qui la descrizione dell'immagine

Puoi rimuovere tutte le estensioni di file da questo elenco e standardizzare solo sulle interruzioni di linea Linux / Mac OS X, vale a dire \n, anche quando si utilizza Windows. La maggior parte degli editor è in grado di cambiare la modalità di fine riga.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.