Unixでファイルの命名規則が何であるかを知りたいです。わかりませんが、従うべき一般的な命名規則があるようです。
たとえば、ファイル名を次のようにbackup
指定したいと思います。part 2
random
私はこうする必要があります:
backup_part2_random
または
backup-part2-random
または
backup.part2.random
質問が明確になりますように。基本的に私はUnixの哲学に固執する形式を選択したいと思います。
答え1
.
foo.txt
.
-
orは、or_
などの論理単語を区切るために使用されます。 Shiftキーを押す必要がないので、より良い(少なくとも標準のアメリカ英語PCキーボードでは)、他の人は空白のように見えるので好みます。my-big-file.txt
my_big_file.txt
-
_
したがって、あなたの例を理解すると、一般的なUnixルールに最も近いですbackup-part2-random
。backup_part2_random
CamelCaseは通常Linux/Unixシステムでは使用されません。/bin
とでファイル名を確認してください/usr/bin
。 CamelCase は Unix および Linux システムのルールではなく例外です。
(NetworkManager
これは私がCamelCaseを使用して考えることができる唯一の例であり、Mac開発者が書いたものです。多くの人がこれらの名前の選択について文句を言いました。Ubuntuでは実際にスクリプト名をnetwork-manager
。
たとえば、/usr/bin
私のシステムでは次のようになります。
$ ls -d [A-Z]* | wc -w # files starting with a capital
6
$ ls -d *_* | wc -w # files containing an underscore
178
$ ls -d *-* | wc -w # files containing a minus/dash
409
それにもかかわらず、大文字で始まるすべてのファイルはCamelCaseを使用しません。
$ ls -d [A-Z]*
GET HEAD POST X11 Xvnc Xvnc4
答え2
遠くさらに重要なことは、特定の規則が一貫して維持されることです。スタイルを選択して固執してください。
答え3
Unix / Linuxファイル名の規則についての私の考え:
Unix / Linuxファイルシステムは本質的に拡張の概念をサポートしていません。ファイル拡張子の概念は、ユーティリティまたは使用中のシェルなどで完全にサポートされているものとして
cp
存在しますls
。 NTFSでも同じだと思いますが、私が間違っている可能性があります。実行可能ファイル(シェルスクリプトを含む)には通常、任意の種類の拡張子はありません。スクリプトには、
#!/bin/bash
スクリプトを解釈する必要があるプログラムを識別するためのハッシュバン行(例:)があります。- 2文字の長さの実行可能ファイルは非常に重要です。したがって、実行可能ファイル名を 2 文字のファイル名として指定しないでください。また、すべてのファイルは、、、のように
/etc
で終わることがtab
重要です。fstab
mtab
inittab
- 時には
.d
特にディレクトリ名に追加されますが、/etc
これは普遍的ではありません(更新:https://serverfault.com/questions/240181/what-does-the-suffix-d-mean-in-linux) rc
構成スクリプトまたはファイルで広く使用されており、プレフィックス(たとえばrc.local
)またはサフィックス(.vimrc
)が付けられます。- Unix / Linuxコミュニティは、拡張に3文字の制限を設けておらず、よく知られている拡張を適切に短縮したときに目を引いた。たとえば、
.htm
Unix / Linuxでは、HTMLファイルの末尾にを使用する代わりに.html
。 - ファイルグループ内では、ファイル名は時々またはすべて大文字であるため、ディレクトリリストの先頭に表示されます。古典的な例は
Makefile
ソースパッケージにあります。次の場合にのみこれを実行してくださいREADME
。 ~
important_stuff~
または、同じバックアップファイルまたはディレクトリを識別するために使用されます/etc~
。多くのシェルが個別~
に$HOME
。lib
ライブラリファイルはzlib
ほぼ常に。- inetdによって呼び出されるスクリプトには時々先行タグがあります
in.
(例:)in.tftpd
。 - 最後のzは
vmlinuz
圧縮を意味しますが、この名前の他のファイルは見たことがありません。
答え4
ファイル名が名前と拡張子で構成されるDOSとは異なり、Unixではファイル名は単なる文字列です。したがって、与えられたファイル名は完全に受け入れられます。
しかし、多くのプログラムは、さまざまなファイルタイプを区別するためにまだドットで始まるファイルサフィックスを使用しています。つまり、Apache Web サーバーはサフィックスを使用して、応答ヘッダーに正しい MIME タイプを設定します。