• ベストアンサー

パス区切りに使用する文字について

前から疑問だったのですが、パスの区切りは、 \ あるいは / って両方使えますよね? これはなぜ両方使えるのでしょうか? なにか理由でもあるのでしょうか?

  • jyuka
  • お礼率13% (4/30)

質問者が選んだベストアンサー

  • ベストアンサー
  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.3

OSが特定されていませんが、Windows/DOS 環境のことだとしたら、普通は \ しか使えないのでは? Windows 系では、/ は普通オプションを指定する文字ですよね。 例1:dir /p/s とやった場合、ディレクトリ \p\s の内容を表示するのではなく、/p と /s オプションを指定したことになります。 例2:C:\ にいる時、cd /windows/system としても c:\windows\system には移動しません。(「無効なスイッチです. - /WINDOWS」と怒られるだけです。) 標準の COMMAND.COM でなく特定のシェル(Windows 版 tcsh など)では、見かけ上本来の Unix 環境に似せるためか、確かに / がパス区切りとして使えますが、それはあくまでも、そのソフトウェアの中で \ に変換しているだけだと思います。 各種処理系のライブラリ関数などでも、同様だと思います。 同様に、Unix では、パス区切り文字はあくまでも / であり、\ は使えません。

jyuka
質問者

補足

分かりやすい説明をどうもありがとうございました。この説明で納得することが出来ました。

その他の回答 (3)

  • poor_Quark
  • ベストアンサー率56% (1020/1799)
回答No.4

>だとすると、ASCII コードを使用する以上、英語環境上では \ は表示できないということで良いのでしょうか?  そういうことになるかと思います。厳密にいうと\(バックスラッシュ)の方はasciiコード由来ですが¥の方はjisコードになるかと思います。今、英語環境のDOSでPCを立ち上げたのですが、そもそもハード上のキーアサインが違うようで同じキーで表示されることはありませんでしたが、例えばDOSでディレクトリをとるとき A:\>dir /w 日本語環境だと A:¥>dir /w という使い方をしますので間違いないでしょう。(文字はすべて半角) /(スラッシュ)はオプションスイッチ指定用のセパレータです。

参考URL:
http://www.rtpro.yamaha.co.jp/RT/docs/misc/code-table.html
noname#30727
noname#30727
回答No.2

想像なんですが、UNIX などは / を使っているから、必然的に URL も / が使用されますよね。ローカルもネットワークも区別しなくていいように、/ も使えるようにしたのだと思います。 私は、Windowsのプログラムでも主に / を使っていますが、状況によっては使えない時があるので、頭にきます(笑)

jyuka
質問者

補足

そうなんですよね、他の方が書いておられますように、/ も使えるときがあるので、余計に混乱してました。

  • poor_Quark
  • ベストアンサー率56% (1020/1799)
回答No.1

 バックスラッシュ(\)のことだと思いますが、英語の文字セットを前提としたキーボードが日本で使われだしたとき必要な¥というマークがなかったので一番使用頻度の少なそうなバックスラッシュをこれに当てたのだと思います。アスキーコードではバックスラッシュと¥は同じだと聞いたことがあります。  バックスラッシュはフルパスでファイルを表現するときセパレータの役割を持っていましたので、日本語では¥がその役割を引き受けたのでしょう。

jyuka
質問者

補足

ASCII コードを調べましたら、\(\) は 5C でした。 なので、この文字は日本語環境では \ と見え、英語環境では \ と見えるこということですよね? だとすると、ASCII コードを使用する以上、英語環境上では \ は表示できないということで良いのでしょうか?

関連するQ&A

  • パス区切りの文字について

    ちょっと素朴な疑問から質問します。 Windows OS の環境下(限定)でパスの区切り文字として(\)文字と(/)文字の どちらの文字を普段は利用しますか? 多くの場合は両方ともパス区切りとして有効ですが、一部(/)文字では上手く パスを指定できなかった経験があります。そこでパス区切りとしては(\)文字を 普段は使っています。文字列では \\ と重ねるため見づらいこともありますが (/)文字より(\)文字を使った方が安全(必ず指定できる)という考えで使っています。 皆様はパス区切りの文字として(\)文字、(/)文字のどちらを利用しますか? また理由があって使い分けていますか? この2点についてお聞きしたいです。 それでは回答をお待ちしています。

  • パス区切り文字(¥と/)

    書いたPHPスクリプトを、 ローカルではWindows版XAMPP上で動作確認し、 リモートでは実際にLinux系サーバーで動かしています。 ローカルで書いたコードを、(当たり前ですが、)手を加えずに、 そのままの形で、リモートでも使えたらいいなと、いつも思っているわけですが、 サーバーOSが、WinとLinuxと、異なるため、 パス周りのコーディングで、しばしば、つまずいてしまいます。 例えば、 echo dirname(__FILE__) ; では、 パス区切り文字として、 リモート: / (スラッシュ) ローカル: ¥ (バックスラッシュ) といった違いが生じたりします。 ローカルのWindows環境でも、パス区切り文字として「/」を使えるので、 手打ちの部分においては、どちらのOSでも使える「/」(スラッシュ)で対応していますが、 先ほどのdirname(__FILE__) の例のような場合には、本当に困ってしまいます。 (文字列置換関数や正規表現なんかで、いちいち変換すべきなのでしょうか?) 何か、上手い知恵などありましたら、どなたか教えてください。

    • ベストアンサー
    • PHP
  • エクセルマクロの別名保存時のパス区切り文字

    エクセルマクロでセル内のパスとファイル名を繋げて別名保存したいと思ってます。 「/」と「\」のどちらを入力されるか分からないため 繋げたパスが「\\パソコン名/共有フォルダ名\ファイル名.xls」となるように入力した所"1004"のエラーが出ました。 デバッグした所 「ActiveWorkbook.SaveAs filename:=繋げたパス」 で落ちてました。 マクロを使わずに別名保存で「/」と「\」を使用した場合は保存されたのですが、なぜマクロだとエラーになってしまうのでしょうか? 入力されたパスの区切り文字をすべて「\」へ変更する処理を加えたので急ぎではないですが、どなたかご教授下さい。

  • URLとパラメータの区切り文字

    1.URLとパラメータの区切り文字(例えば"?") 2.各パラメータ間の区切り文字(例えば"&") 3.パラメータのキーと値の区切り文字(例えば"=") これらの名前は、何と言うのでしょうか? ("?"より前をURLと書きましたが、"?"以降も含めてURLでしょうか?) あとは、"#"などもありますが、他にはどんなものがあるのでしょう? それらの名前もお教えいただけると幸いです。

  • ~歳まで という区切り

    小さなことですがなんとなく疑問になっています。 何かの基準として、よく「1歳までは」「3歳までは」という 区切りを目にしますが、 その「~まで」というのは、例えば「1歳まで」だと、 1歳になるまで、なのですか? それとも 1歳が終わるまで、なのでしょうか?

  • 区切り文字について

    英語で区切り文字は一般的にはどのような文字を使用しているのでしょうか。 日本では以下のような表示があるかと思いますが、英語でも同様に通じるものでしょうか。 [日本での例] パン,サンドウィッチ パン/サンドウィッチ パン・サンドウィッチ [英語での例] Bread,sandwiches Bread/sandwiches Bread・sandwiches 英語ではカンマ区切り等を良く見かけるような気がするのですが、なかぐろ「・」のような文字も使用しても同様に意味を理解してもらう事は可能でしょうか。

  • エクセル2000 文字区切り 1(文字)→1(数字)に変更したい

    エクセル2000を使用しています。 テキストファイルを読み込み、文字区切り(:区切り)を 行いました。 こんな感じです。 :の前に数字が入っています。 1:ばなな(区切り前)   ↓ 1 ばなな(区切り後) 文字区切りをした後、:の前の数字が文字となってしまいます。 セルの書式設定で、標準から数字に変更してもだめでした。 形式を選択して貼り付けで、加算で貼り付けると文字列が消えてしまいます。 別のセルで、=A1+2と入れても、やはり文字なので、数字になりません。 メモ帳に貼り付けてみると、”     1”と表示されたので、 ”をエクセルで検索してたのですが、見つからないと表示されてしまします。 このような場合、どのように数字に変更したらよいのでしょうか? よろしくお願いします。

  • テキストファイルのデータ区切り文字(制御文字)について

    テキストファイルにデータを保存しているのですが、区切り文字タブ\tはフィールドの区切りに使っています。 その状態で、仮に1つのフィールドにデータを詰め込む場合、,(カンマ)で区切った場合にデータ自体に金額の,があった場合、誤動作します。フィールドの区切りはタブ\tは普通ですが、1つのフィールドに複数データを持たせる場合の区切り文字は\0など使っても問題ないのでしょうか? 環境はWindows, Linux両方で使います。\0を使ってそれが文字列の最後とまた誤動作しても嫌です。 皆さんは\t以外にテキストデータの区切りにどのような制御文字を使っていますか?ちなみに改行は1レコードの区切り文字です。

    • ベストアンサー
    • Perl
  • フルパスで書くかどうかについて

    こんにちは。 これまで多くの企業担当のWebデザイナーとして働いてきたのですが、パスの書き方について、疑問に思っていることがあります。 企業の大きなサイトを作るときに、企業によって、サイト内へのリンクをドメイン名の後から書くように決まっている場合と( /jp/xxx/sss/aaa.html など)、フルパスでhttpから書くように決まっている場合と2通りを経験しました。 どちらかというと、フルパスで書かない方が多かったのですが、それをなぜ?と聞くと答えてくれる人がいません。 どちらが好ましく、また、その理由はなんでしょうか? 実は、明日下請けのベンダーさんと話をするのですが、その話で突っ込まれそうな予感がしています。色々調べたのですが、的確な答えを見つけることができませんでした。 宜しくお願いします。

  • 区切り文字をTABにしたい

    CGI-Perl初心者です。 エントリデータを、カンマ区切りテキストデータで保存するようにしていますが、(入門書のファイル操作を参照しながら何とか作れた代物です)後で大きな問題が発生しました。このデータには金額を入れる項目があって、例えば10,000円とカンマを入れると当たり前ですが、区切り文字と判断して10と000円を分けてしまうのです。そこでTAB区切りテキストデータに変更したいのですが、 $data=join(",",変数,変数,変数,変数); としている","の部分をタブにするにはどうしたら良いのでしょうか?

    • ベストアンサー
    • Perl