• ベストアンサー

Linuxのスラッシュ,ピリオドの意味

Linuxのスラッシュ,ピリオドの意味がいまいちよくわかりません. 一応,スラッシュはディレクトリ,ピリオドはカレントディレクトリと理解しているのですが. たとえばコピー例にすれば, cp /hoge1/ /hoge2/ と cp /hoge1 /hoge2 cp ./hoge1 ./hoge2 と cp hoge1 hoge2 と cp hoge1/ hoge2/ などではは,どのような意味の違いがあるのでしょうか? また,スクリプト,abcがあったとして ./abc などとすると実行できるのに, abc では実行できないのはなぜなのでしょうか?

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

  • ベストアンサー
  • tokichim
  • ベストアンサー率42% (88/205)
回答No.2

> cp /hoge1/ /hoge2/ > と > cp /hoge1 /hoge2 前者はhoge1,hoge2はディレクトリであると指示していることになります。ですから、もしhoge1,hoge2がファイルだった場合はエラーになります。 後者は指示していないのでファイルなのかディレクトリなのかをcpコマンドが自動で判別します。 > cp ./hoge1 ./hoge2 > と > cp hoge1 hoge2 > と > cp hoge1/ hoge2/ どれもカレントディレクトリの下のhoge1,hoge2を操作する点で同じですが、3つ目だけはディレクトリであることを指示しています。よってファイルだった場合はエラーになります。 > abc では実行できないのはなぜなのでしょうか? 単に abc と指定すると、シェルはpathという環境変数で指定されたディレクトリを順に探します。 pathにはおかしなプログラムを誤って実行しないように、普通カレントディレクトリ . は含めていません。ですから実行されないのです。

take_zoo
質問者

お礼

大体わかりました. windowsだと真っ先にカレントディレクトリから探しますが,linuxは それが含まれないということですね. ただそうすると, cp hoge1 hoge2 のような表記が通用するのが不思議に思いますが,これは仕様だと割り切るしかないのでしょうか cp ./hoge1 ./hoge2 としたほうが正しいように思いますが?

その他の回答 (4)

  • mashkun
  • ベストアンサー率23% (86/364)
回答No.5

あれあれ?? cp/mv/rm/lsなどはUNIX系OSなら全部外部コマンドじゃありませんでしたか? Linuxなら、/usr/bin/cpとか。

  • auty
  • ベストアンサー率58% (284/486)
回答No.4

Wr5様の述べられていることで十分だと思われますが、混同しやすいところなので少し追加してみます。 cpコマンドは、shellの内部コマンドなのでパス($PATH)とは全く関係なく実行できます。 またこの場合、hoge1 hoge2に関しては、コマンドではないのでこれもまたパス($PATH)とは全く関係ありません。 たとえば、スクリプト,abcがcpコマンドと同等の機能があるものとして考えた場合、abcは外部コマンドなので、パス($PATH)に場所が登録されていないと、 ./abc とする必要があるわけです。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

>windowsだと真っ先にカレントディレクトリから探しますが,linuxは >それが含まれないということですね. >ただそうすると, >cp hoge1 hoge2 >のような表記が通用するのが不思議に思いますが,これは仕様だと割り切るしかないのでしょうか pathが関係するのは「実行ファイル」の場合だけです。 # 実行属性のついたスクリプトファイルなども実行ファイルに含まれます。

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

>>> スラッシュはディレクトリ より正確には、 最初のスラッシュは、ルート(root)で、 それ以外のスラッシュはディレクトリと(ディレクトリまたはファイル)をつなぐ区切り記号です。 >>> ./abc などとすると実行できるのに, abc では実行できないのはなぜなのでしょうか? Linuxの場合、カレントディレクトリがパス($PATH)に含まれていないので、スクリプトまたはコマンドのある場所を正確に指定する必要があります。 ./abcは相対パスで、/・・・・・・・・・・・・/abc は絶対パスの指定となります。

take_zoo
質問者

お礼

ありがとうございます,よくわかりました. windowsとはちょっと違いますよね.

関連するQ&A