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


25

ファイルをナビゲートするためにコマンドラインを頻繁に使用するため、ファイル名にスペースが含まれないようにします。通常、単語をつなぐためにアンダースコアを使用しましたが、最近ダッシュを使用することが提案されました。ファイル名にアンダースコアを使用することには欠点がありますか?ダッシュに切り替える必要がありますか?私のシステムはXubuntuを実行しており、ほぼ排他的にbashシェルを使用しています。

ありがとう



1
LaTeXを使用する場合、いくつかの括弧内のファイル名を保護する必要があります{...}。自動スクリプトの場合、それを考慮する必要があります。_添字を作成し、中に例えば含まれる必要するために使用される $...$回避エラーに、それはあなたが期待しているものとは異なるテキストを生成します。gnuplotの拡張ターミナルでも..
ハスター

回答:


22

オペレーティングシステムに関する限り、両者は相互に使用可能です。

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

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

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

それ以外は、純粋に個人的な選択です。


1
私はハイセンスを使いますが、それは見た目が良いからです。その背後にある技術的な理由に。
beatgammit

ありがとう!それは私が疑ったことですが、疑いだけを続けるとトラブルになる可能性があることもわかりました。
DQdlM

16

Dashでは、Shiftキーを押す必要はありません。つまり、より速く入力できます。それは、ジェンキンス氏が示唆した以上に私が考えることができる他の唯一の利点です。

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


7
その場合、vi代わりにキーストロークを1つ少なく使用します;)
Majenko

4
@Mattそれはとにかくalias「; 」v
ダニエルベック

+1これと同じ理由で、次のように、すべて大文字のアンダースコアを使用しますFOO_BAR(Caps Lockは使用しないので、Shiftキーをずっと押したままにしておくと便利です)。
リチャードハンセン14年

@DanielBeck私は実際に私のbashのエイリアスで、だけでなく、持っているgためにgit:)
月Warchoł

vimでは、ハイフンで区切られた2つの単語を単一の単語と見なすため、vimユーザーとしてファイル名にアンダースコアを使用する理由になる可能性があります。
oddRaven

8

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

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

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

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

これやバンパーステッカーキャンペーンがファイル名にスペースを入れることを妨げるとは思いませんが、もしあなたが自分自身を助けたいなら、あなたにもっと力を与えてくれて、私たちの代わりにあなたに感謝します。


1
まったく同感です。適切に構成されたファイル名にはスペースは必要ありません。
DQdlM

4
@KennyPeanuts-しかし、よく書かれたプログラムはスペースを詰まらせません。
確実に

2
@detly-touche '
DQdlM

1
@detlyいいえ、優秀なプログラマーは、できることとすべきことには制限があることを理解しています。スペースで窒息してはいけないと言うなら、誰かがそれを上に置いて行末で窒息してはいけないと言うことができますファイルの終わり。「失敗の公式:みんなを喜ばせよう」という古い格言があります。
deltaray

1
ファイルシステムの仕様は、何をコード化するか、それ以上でもそれ以下でもありません。Ext2ファイル/ 3月4日には、例えば、ファイル名は除く任意の文字含まれていてもよい\0か、\\\`. Coding to anything less than that is broken by design. So, no, it shouldn't choke on spaces, or EOL, or non-ASCII characters, or anything that isn't `\ 0 'または' \を。他の多くの人々がすでにこれらの問題を解決しているため、ファイルパス操作にライブラリ関数を使用する方法があります。
確実に

5

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

オペレーティングシステムに関する限り、両方の文字は同じように有効であり、エスケープする必要はありません(スペースを使用するため、作業が面倒です)。


2
基本的な読みやすさの理由は、純粋に主観的なものだと思います。アンダースコアは読みやすいと思うので、視覚的には無視できますが、ダッシュは実際に読む必要があります。
ゴリアトーネ14

3

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

だから、私のbin /プログラムまたはエイリアスの大部分ではハイフンを使用しますが、Pythonプログラム/モジュールの作成に関してはアンダースコアを使用します。


2

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

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

ウェブ開発者として、これは言葉を分離するときにハイフンに固執することを余儀なくされました。


1
上記のコンテキストは、おそらく、スペースプレースホルダーのより良い指標としてのハイフンとアンダースコアに対するGoogleのアルゴリズム設定に関する2005年のMatt Cuttsのブログ投稿に関連しています
jmmygoggle
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.