同じファイル、異なるファイルサイズ


12

FTPサーバーからlftpとTransmit(Macアプリ)を使用してバックアップを作成しました。すべて問題ありませんが、1-2ファイルのファイルサイズは異なりますが、同じです。

最初のファイル:

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

2番目のファイル:

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

これら2つのファイルの違いは何ですか?


問題は報告れたサイズだけではありませんでしたか?Appleは、数年前にMac OS Xがストレージスペースを報告する方法を、ハードドライブメーカーが使用する方法に合わせて切り替えました。1MB = 1024KBの代わりに、1MB = 1000KBを使用します。ファイルが異なるサイズに見えるように、他の方法を使用してLinuxホストによって他のサイズが報告される場合があります。これがあなたのケースに当てはまるかどうかはわかりませんが、それでもなお興味深いものです。
WebDevKev

それじゃない。質問の一部として彼が提供したファイル、または私の回答の差分スクリーンショットを見てください。ちなみに、ファイルは1800〜1900バイトで違いを生むほどには大きくありません。
ダニエルベック

回答:


25

deadcow_seo.phpUnixの行末記号(LF)をdeadcow_seo.php_2.php使用し、DOS / Windowsの行末記号(CR LF)を使用します。

FTPは、2つの一般的に使用されている、いくつかの「転送モード」を有する1 - バイナリ(また、「画像」という)と、テキスト(または「ASCII」)を。「バイナリ」モードでは、ファイルはそのままバイト単位で転送されますが、「ASCII」はファイルをテキストの行で構成されていると解釈します。行末はCR LF送信時にネットワーク標準に変換されます。受信時にマシンのネイティブの行末に変換されます。

ファイルをテキストとして転送することは最初は理にかなっているかもしれませんが、後で問題を引き起こすだけです。実際、一部のFTPサーバーはファイルを完全に削除するか、サーバー側のバイナリと同等にします。さらに、ほとんどのテキストエディタ(メモ帳を除く)は、Windows形式とUnix形式の両方でファイルを読み取って保存できます。

常にバイナリモードを使用するようにFTPクライアントを構成するだけです。コマンドは通常binまたはですがmode i、グラフィカルクライアントの設定にはチェックボックスまたはファイルタイプリストがあります。


1いくつかの古いモードは、「tenex」(TENEXページベースのファイルでは長く使用されなくなった)と「compressed」(単純なRLEアルゴリズムとして定義されているように見える)です。最近のFTPサーバーは、zlib圧縮の「モードz」をサポートしています。


12

転送中の改行を置き換えるテキスト(またはASCII)転送モードを使用しました。これは、Windowsでスクリプトとプログラムを開発し、ファイルをLinuxまたはMac OS Xに転送する場合に役立ちます。システムはすべての行の最後にゴミデータを見るため、そうでなければ動作しません。

ファイルは、単一のWindows改行を持っている場合\r\n(またはCRLF)、そしてあなたは、LinuxやMac OS Xにダウンロードし、それが置き換えられた\n(またはLF1バイト以下です、)。FileMergeを使用してファイルを比較すると、ステータスバーでこれが確認されます。

ここに画像の説明を入力してください

データ解釈に関するこの回答も参照してください。


Transmitの設定で、テキストとして解釈されるファイルタイプを設定できます。

ここに画像の説明を入力してください

このリストからすべてのファイル拡張子を削除し、Linux / Mac OS Xの改行、つまり\nWindowsを使用している場合でも標準化することができます。ほとんどのエディターは、行末モードを変更できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.