人々はUnixファイル名にスペースを使用しないでください。ファイル名に大文字(たとえば、File_Name.txt
および)を使用しない理由はありますか?file_name.txt
それとも、これは個人的な好みの問題でしょうか?
答え1
人々はUNIXファイル名にスペースがあってはいけないと言います。
人々は多くのことを言いました。一部のツールにはバグがあるかもしれませんが、Spaceは大規模な消費者専用のOS企業によって広がるウイルスであり、現在これを回避する方法がないため、現時点ではそのようなツールがほとんどないことを願っています。
スペースは、コマンドラインなどでファイル名を指定するのを厄介にします。それはすべてです。 *nixシステムで明示的に禁止されている唯一の文字はNUL(心配しないでください。キーボードや他の人のキーボードにないため)とです/
。これはパス区切り文字であるためです。1 それ以外はすべて大丈夫です。単一パス要素(ファイル名)は255個に制限されています。バイト(拡張文字セットを使用すると複雑になる可能性があります)フルパスは4KiBです。
それとも単なる個人的な好みの問題でしょうか?
そうだと言います。ほとんどのDEはディレクトリに大文字のディレクトリを作成しているようです$HOME
(Downloads
、、、Desktop
-非常に人気がある)、これは驚くべきことではありません。など、大文字を含む非常に一般的で伝統的なファイルもあります。Documents
D
.Xclients
.Xauthority
最初に大文字を使用することの1つの価値は、辞書式でリストされているときに内容の前に小文字で表示されることです。少なくとも多くのツールの場合、これはロケール設定の影響を受けます。
私はCamelCase(別名CamelCase)のファンです -/home/goldilocks/blueSuedeShoes
その中に何が入っているのか気にしないでください。などのファイル名と一緒に使用します。もちろん、個人的な好みに伴う問題ですが、まだそれほど悲しいことではありません。
Javaクラスファイルは、Javaクラス名と同様に、性質上大文字を含む傾向があります。もちろん、NetworkManager
私たちのいくつかが欲しいとしても忘れないでください。
1. POSIX が推奨する区切り記号が 1 つあります。「携帯用ファイル名文字セット」それいいえスペースは含まれていますが、大文字も含まれています! POSIX「スラッシュ文字とヌルバイト」のより一般的な制限も指定されています。同じ文書内の他の場所。これは反映または反映されます。長い伝統の実践。
答え2
ファイル名を大文字にしない理由の1つは、Unixのソート順序が大文字と小文字を区別するため、大文字で始まるファイルが順序なしで表示されるためです。そのため、Makefile
通常は大文字で名前が付けられます。M
下にスクロールしたり、バレルをスキップしたりすることなく、最初に見たいファイルの1つですa-l
。
つまり、ファイル名を使用すると状況が悪くなる可能性があります。
- スペースを使用すると、誤って作成された一部のプログラムやファイル名を正しく引用できないスクリプトが破損する可能性があります。
- aで始まるファイル名は、多くのプログラムがファイル名ではなく
-
コマンドラインオプションとして扱うため、問題が発生する可能性があります(名前rm -r
付きファイルは削除されません-r
)。 - aで始まるファイル名は、
.
多くのユーティリティやシェルのグロービングから隠されます(たとえば、rm *
同様のファイルは削除されません.config
)。 - 特殊文字(
|<>*?
印刷できない文字など)を使用することnewline
は技術的に可能ですが、同様の空白文字を持つスクリプト/プログラムが中断される可能性があります。違いは、空白文字が頻繁に使用されるため、プログラマは空白文字に対してプログラムをテストする傾向があるのに対し、あまり人気のない文字はしばしばテストされないことです。
答え3
Windows環境と対話する場合、Windowsはすべてを小文字として使用するため、大文字の使用を避ける必要があります。これは通常逆の問題です。リンクはWindowsではPage_2.html
機能しますpage_2.html
が、Unixでは失敗します。
答え4
大文字を避ける1つの理由は、タブのbash
完成が大文字と小文字を区別するためです(少なくとも基本的に)。まだbash
基本設定に触れるたびに私を倒すようにしてください。もちろん、広く使用されている他のシェルもありますが、これは多くのオペレーティングシステムのデフォルトのログインシェルと組み合わせて、大文字と小文字の区別が完全にデフォルトであることをbash
意味します。ファイル名をすべて小文字で使用すると、操作が簡素化されます。