web-dev-qa-db-ja.com

ファイル名にアンダースコアを使用していますか?

コマンドラインを頻繁に使用してファイルをナビゲートするので、ファイル名にスペースを含めないようにします。通常、私は単語を接続するためにアンダースコアを使用しましたが、最近はダッシュを使用する必要があることが示唆されました。ファイル名にアンダースコアを使用することに不利な点はありますか?ダッシュに切り替えるべきですか?私のシステムはXubuntuを実行しており、bashシェルのみを使用しています。

ありがとう

27
DQdlM

オペレーティングシステムに関する限り、どちらも互いに同じように使用できます。

私が気づく一つのこと-一部のソフトウェア(一部のビデオ再生システム-XBMCなど)は、ファイルを表示するときにアンダースコアをスペースに自動的に置き換えて、見栄えをよくします。

その理由だけで、私はアンダースコアーに固執したくなります。

また、コマンドへの切り替えにはハイフンが使用されるため、ファイル名とコマンドスイッチにハイフンを含めると少し混乱する場合があります。

それ以外は純粋に個人的な選択にかかっています。

24
Majenko

ダッシュでは、Shiftキーを押す必要がないため、入力が速くなります。それは、ジェンキンス氏が示唆した以上に私が考えることができる他の唯一の利点です。

おそらく、その提案をしている人は熱心なVimユーザーであり、最小限のキーボード操作ですべてを実行したいと考えています。

17
LawrenceC

スペースの代わりにアンダースコアを使用することをお勧めします。アンダースコアは通常、スペースを置き換えるときに使用される規則ですが、ハイフンも問題ないと思います。ただし、ハイフンはハイフン付きの単語などの他の方法で表示される場合があるため、アンダースコアを使用して名前の値を保持することに成功します。たとえば、「Winston-Salem、NC.jpgで撮影した写真」というファイルがあり、スペースをアンダースコアに変換したい場合、名前のハイフンを保持し、その意味を保持できます。

スペースは、次のようなforループなどの高度な方法でコマンドラインを使用する場合に問題を引き起こします。

for file in *.mp3 ; do mpg321 $file -w - | oggenc -o ${file%%.mp3}.ogg - ; done

そのワイルドカードと一致するmp3ファイルのいずれかに名前にスペースが含まれている場合、ファイル名が全体ではなくセクションに分割されます。これを回避するには、BASHシェルのIFS変数を変更するか、findコマンドを使用しますが、煩わしく、多くの人がこれを知らないため、問題が発生する可能性があります。

このキャンペーンやバンパーステッカーキャンペーンではファイル名にスペースを入れられないのではないかと思いますが、自分で力を入れたい場合は、より多くの力を発揮し、気にかける人々のために感謝します。

7
deltaray

アンダースコアの代わりにハイフンの使用を検討すべき唯一の理由は、基本的な読みやすさです。頻繁に下線を引くと、視覚の線がy軸の中心から下に変わるため、読みが歪む傾向があります。ただし、ハイフンを使用すると、目にやさしくなります。

オペレーティングシステムが許可されている限り、両方の文字は同等に有効であり、エスケープする必要はありません(スペースを使用するため、操作が面倒です)。

5
Varun Madiath

個人的には、アンダースコアよりもハイフンの方が好きです。シフトキーを押す必要がないからです。ただし、主にpythonコーディング-を実行していて、コードツリーにハイフンを含むファイル/ディレクトリがあり、それらをモジュールとして使用する場合(インポートファイル名をあなたのコード)、これはpythonモジュールにハイフンを含めることができないというエラーを引き起こします。もちろん、ハイフンを含むモジュールをインポートする方法はありますが、アンダースコアをそのまま使用しますPEP-8ガイドラインに従います。

したがって、ほとんどのbin /プログラムまたはエイリアスではハイフンを使用しますが、python programs/modules-アンダースコアを使用します。

4
Saurabh Hirani

UnixファイルシステムにマップするWebベースのコンテキストでハイフンを使用するのには十分な理由があります。

URL               What search indexes see
foo-baz-bang      foo baz bang
foo_baz_bang      foobazbang

これにより、Web開発者は、単語を分離するときにハイフンを使用するように強いられました。

2
rich remer