web-dev-qa-db-ja.com

パス名の最後にディレクトリセパレータを追加する必要があるのはいつですか?

コード内のディレクトリパス名は、ほとんどの場合、末尾に区切り文字があってもなくても使用できます。したがって、たとえば、Unixシェルの次のコマンドは同じです。

  • ls /usr/bin
  • ls /usr/bin/

または、同様にWindowsコンソールで:

  • dir C:\Windows
  • dir C:\Windows\

また、特に、ほとんどのサーバーは、URLパスの後に(欠落している)スラッシュを気にしません。

時々、この交換可能性がプレーンテキストの一貫性のない使用法に反映されているのを見てきました。同じコンテキストでも、ディレクトリ名の末尾にセパレータが付いている場合と付いていない場合があります。

マニュアルページやログエントリのような人間が読めるテキストを書くとき、いつパス名の後にディレクトリセパレータを追加するのが良いでしょうか?異なる表現の利点と欠点は何ですか?

1
GOTO 0

ユーザーが/usr/bin/を読んだ場合、binはファイルではなくディレクトリであることをすぐに理解できます。ユーザーが/usr/binを読んだ場合、区別はありません。

オペレーティングシステムはどのようにこの仕事をしていますか? Unixのls -lまたはWindowsのdirのようなaコマンドを使用すると、出力は次のようにファイルとディレクトリを区別します

  • Unix

    -rw-r--r-- 1 root root 15276 Oct 5 2004 a2ps.cfg

    drwxr-xr-x 4 root root 4096 Feb 2 2007 acpi

最初の記号は、ファイルの場合は-、ディレクトリの場合はdです。

  • ウィンドウズ

    05/14/2010 02:00 AM 135 README.TXT

    04/26/2013 11:08 AM <DIR> users

ここで、135はバイト単位のファイルサイズ(ファイルであることを意味します)であり、<DIR>はディレクトリタグです。

1
RawBean

ブラウザは通常、ウェブサイトのルート(www.google.com)にアクセスするときに末尾にスラッシュを追加します。

Webデザイン/開発に関して、相対リンクを使用している場合、以下のURLには大きな違いがあります。

  • example.com/foo
  • example.com/foo/

ドキュメント内に./へのリンクがある場合(例:<a href="./">elsewhere</a>)、最終的に表示されるページはかなり異なります。

  • example.com/foo-> example.com/
  • example.com/foo/-> example.com/foo/
0
cimmanon