ファイルのサイズをゼロにするにはどうすればよいですか
私たちは皆、時々私たちを完全に困惑させてしまうような私たちのコンピューターの「状況」に出くわしています。本日のSuperUser Q&A投稿には、混乱した読者の質問に対する答えがあります。.
本日の質疑応答セッションは、コミュニティ主導のQ&A Webサイトのグループである、Stack Exchangeの下位区分であるSuperUserの好意により提供されます。.
質問
SuperUserの読者Eugene Sは、ファイルのサイズを0にする方法を知りたいと思っています。
これは私が遭遇したことであり、正しい説明を考えることができなかったことです。空を作成すると * .txtファイル 私のコンピュータ上でそのサイズを見て、それはゼロのサイズを示しています。そんなことがあるものか?ファイル自体が空の場合でも、ある程度のサイズが必要です(たとえファイル名が格納されている場合でも)。これはどのように説明できますか?
ファイルのサイズがゼロになる可能性はどのようにありますか?
答え
SuperUserの貢献者であるDavid SchwartzとCort Ammonが私たちに答えてくれます。最初に、David Schwartz:
本当にファイルがないので可能です。名前と所有者を持つディレクトリエントリだけがあります。ディレクトリエントリは、ファイルとは論理的に異なります。たとえば、同じファイルが複数のディレクトリに複数の名前を持つことができます。.
残念ながら、ファイルという用語は必ずしも正確に同じものを意味するために使用されていません。しかし、ファイルサイズロジックは、ディレクトリエントリがファイルをディレクトリに添付し、次にファイル名と関連するメタデータがディレクトリに格納されるというモデルに由来します。.
Cort Ammonからの回答が続きます。
ファイルサイズの意味は、あなたが使っているものとは異なります。.
意味のあるファイルサイズはたくさんあります。最も一般的なもの、そしてここで見ているものは、ファイルのバイト数です。ファイルが空のテキストファイルであるなら、それは確かにゼロバイトを含むかもしれません。私たちはしばしばファイルを開いて、すべてのデータを読んで、そしてそれを閉じる必要があるので、この数はプログラマーにとって重要です。前もって計画できるように、ファイルに何バイトのデータが入るかを知る必要があります。.
別の意味は、ほとんどのファイルシステムがデータを保存する方法から生じます。ほとんどのファイルシステムはデータをブロックに格納します。たとえば、ファイルシステムは64 kBブロックにデータを格納できます。つまり、64 kBの倍数ではないものは割り当てられません。これは非効率的に聞こえますが、簿記をかなり簡単にすることができます。そして多くの場合、簡単なことはより速いことを意味します。.
あなたが引っ張っている3番目の意味は、ファイルの存在を記述するためにハードドライブ上で必要とされる実際のビット数です。これには、通常ファイルとは別に格納されている情報が含まれます。たとえば、Linuxでは、ファイル名の概念はファイルを含むディレクトリのiノードに格納されています。 [他のコメントからの入力に基づいて、これは(技術的に)ディレクトリのデータに格納されています。これを書いたとき、私は小さなディレクトリのケースを考えていました。 156バイト未満のデータは、iノードに直接格納できます。.]これは一般的に使われている意味ではありません。ファイルシステムの非常に深い内部動作(ファイルに対するすべての許可を格納するために必要なスペースの計算など)を知らずに判断するのは非常に難しいからです。しかし、1,000,000バイトのハードドライブを持っていて、そのハードドライブにどれだけのファイルが収まるかを知りたい場合、これはあなたにとって非常に重要な意味を持つことになります。!
説明に追加するものがありますか?コメントで音を消す。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッドをチェックしてください。.