ファイル名にスペース文字を使用しない理由は何ですか?


75

ファイル名にNamingThingsLikeThis.txtスペースをサポートしている最新のオペレーティングシステムにもかかわらず、たとえば、ファイル名にスペースを使用しない傾向がある人に関して、今日私が知っている誰かがいらだちを表明しました。

(適切な)スペースのないファイル名を見るのがまだ一般的であるという技術的な理由はありますか?もしそうなら、ファイル名のスペースが回避または落胆するこれらの技術的理由は何ですか、そしてそれらはどのような状況で関連していますか?

私が考えることができる最も明白な理由と、通常それを避ける理由は、そのようなファイルを扱うときにコマンドラインで必要な余分な引用符です。他に重要な技術的理由はありますか?


あなたが言ったように、それらはコマンドラインで扱うのがずっと簡単です。プログラミングに関しては、ファイル名にスペースを使用することが可能かどうかはわかりません。
アルビン行

回答:


66

ファイル名の空白文字は、コマンドラインの多くのコンテキストやスクリプトで、適切にエスケープされていることを確認する必要があるため、コマンドの区切り文字のように見えないことで、ことわざの正しい王室の痛みになる可能性がありますランニング。

file / dir / what-everがそのようなコンテキストで決して使用されないと確信している場合でも、それらをそこに置かない方が安全です。

それ、そして古い習慣は一生懸命に死にます。


また、それらは対処すべき正しい王室の痛みでもあります。その場合、パスを作成して変更する必要があります。コンポーネントが再エスケープ/再クォートされる前に、特にピースが他のコードのビットに送られて操作される場合は、コンポーネントがクォートされておらず、変更のためにエスケープされていないことを確認します。
フレイジャー

2
スペースが悪いと思う場合'\n'は、名前に改行()が含まれるファイルを処理してみてください。(Unixのようなシステムは実際にこれを許可します。Windowsは一般的に、または少なくともそれを難し​​くします。)
キーストンプソン

31

コマンドラインと古い習慣に関する他の回答に加えて、スペースを含むファイル名を扱うときに特別な注意を必要とする多くのネットワークプロトコルもあります。

(Webサイトから「Product List.pdf」をダウンロードしようとして、「Product」という名前のファイルになった場合、もう一方のプログラマーが知らなかった、またはできなかったため、これに噛まれたことがあります。 http Content-Dispositionヘッダーの引用規則を理解しないでください。)


11
+1。開始のためのHTTP。URLのスペース(HTTPだけでなく、あらゆるプロトコルの場合)は、%20または+にエスケープする必要があります。あるべきようにエンコードされていない場合、混乱が生じる可能性があります。Webページの場合、スペースとアンダースコア( "_")の両方を避ける視覚的な理由があります。下線付きリンクでは両方が同じように見えるため、誰かが手動でリンクをコピーしたり、誰かに読んだりする可能性がありますそれは間違っています。
デビッドスピレット09

5
URLでエンコードする必要がスペースに関する最も厄介なことの一つエンコードされたスペースを保ってしまうために、特定のソフトウェアのためのtendancyです...
SAMB

これは本当ですか?2018年にこれは起こりますか?
クリスキャロ

@ChrisCaloあなたはこの答えが2018年ではなく2009年に与えられたことにお気づきかもしれません。しかし、はい、これは2018年にも起こります。ほとんどの新人開発者はすべてをゼロから行うのではなくフレームワークを使用してウェブサイトを構築していますが、それでもまだです問題。
ストボー

28

理由の多くは歴史的なものです。それは彼らが今日意味をなさないことを意味しません。

移植性の問題

ファイルに名前を付けるとき、他の(ファイル)システムがそのファイル名をどのように扱うかを考慮する必要があるかもしれません。ファイル名の文字はシステムにとっては問題ないかもしれませんが、別のシステムでは問題になる可能性があります。

したがって、古いシステムからファイルに簡単にアクセスできる可能性がわずかにある限り、安全な文字のみを選択します。これには、保持していた古いリカバリシステムを起動したり、最近のWindowsバージョンがまだMS-DOSに基づいているのではないかという恐れが含まれる場合があります。

長さ

ファイルシステムは、ファイルの長さを制限する場合があります。これは、MS-DOSが8.3ファイル名に制限されていた時代にはさらに深刻でした。そのため、スペースを省くことで、より意味のある文字を名前に含めることができました。

他のいくつかのファイルシステムも、ファイル名の長さの厳密な制限を定義しています。ウィキペディアには、詳細を知りたい人のためのファイルシステムの比較に関する記事の表があります。

予約キャラクター

MS-DOSは、スペース文字を予約文字としても定義しました。これは、スペース文字がFATのパディングに使用されたという事実によるものです。さらに、MS-DOSはシェル内のエスケープシステムを提供しませんでした。

コマンドラインの解釈

私が知っているほとんどのコマンドラインは、パラメータ区切り文字としてスペース文字を使用しています。ファイル名を適切にエスケープしないと、ファイル名の一部が呼び出したいアプリケーションのパラメーターとして解釈される可能性があるため、悲惨な結果を招く可能性があります。

の違いを考慮してください

rm foo bar

そして

rm "foo bar"

上にリンクされたWikiPediaの記事は、コマンドを適切にエスケープするために欠落することによって導入された曖昧さを指摘しています:

あいまいさは、最初にファイル名とディレクトリ名に埋め込まれたスペースを禁止することで防止できます(たとえば、アンダースコア「_」で置き換えることにより)、またはコマンドラインインタープリターとこれらのパラメーターを取るプログラムでサポートされている場合引数。引用符の間にスペースを埋め込んだり、スペースの前にエスケープ文字(通常はバックスラッシュ( '\'))を使用して名前を囲みます。例えば

Long path/Long program name Parameter one Parameter two ...

あいまいです(「プログラム名」はプログラム名の一部ですか、それとも2つのパラメーターですか?)。しかしながら

Long_path/Long_program_name Parameter_one Parameter_two ...,
LongPath/LongProgramName ParameterOne ParameterTwo ...,
"Long path/Long program name" "Parameter one" "Parameter two" ...

およびLong \ path / Long \ program \ name Parameter \ one Parameter \ two ...

あいまいではありません。

Uniform Resource Locators(URL)

URLを使用してファイルの場所を記述しようとすると、スペースをエスケープする必要があります。

文字は、いくつかの理由で安全でない場合があります。スペース文字は安全ではありません。なぜなら、URLが転写またはタイプセットされるか、ワードプロセッシングプログラムの処理が行われると、重要なスペースが消えて、重要でないスペースが導入される可能性があるためです。

出典:RFC1738

したがって、%20代わりにスペースを置き換える必要があります。これにより、URLのファイル名の部分が読みにくくなるため、そもそもURLを避けるようになります。


25

スペースは%20Web上のファイル名にエンコードまたは変換されるため、サイトのアセットの管理が難しくなる場合があります。

持っImage 1.pngているImage%201.pngと混乱しています。Image001.png代わりに使用する方が簡単です。

これは、実際にコマンドラインのエスケープシーケンスと同じカテゴリに分類されます。


5

コマンドラインでの処理時、古いOSの使用時、異なるOSでコンパイルされるプログラムの作成時、または...問題が発生する可能性のある多くの理由がある場合、スペースが問題になる場合があります。ファイルをfile-without-blanks.txtまたはfile_without_blanks.txtのように書き込むのは本当に面倒だと感じています。たとえば、下線付きフォントを処理するときにアンダースコアが見えなくなることがあるので、私は夕暮れが好きです。

しかし、ほとんどの場合、それは古い時代からの習慣の問題です。放棄するのに十分なプロの理由があるとは思わない。


おそらく関連のない追加のメモですが、それでもここに置きます。ファイルに名前をスペースで付ける人は通常、そのことをあまり考えません。多くの場合、ファイル名でそれらを避けるのが良い理由の少しを知らない人。
そして、私たち全員が同意することができます。「親愛なる皆さん、yo.docをお知らせするためにこの手紙を書いています」という名前のファイルほど悪いものはありません。

スペースだけでなく、ファイルの長さも何かのために考慮されます、そして、私見、それは、例えば、30文字より長くてはいけません。古いOSの下で、Winと* nixプラットフォームの間に読む必要があるCDやDVDなどを記録する場合、内部にスペースがある長いファイル名も祝福です。


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