![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
Linuxのスラッシュ,ピリオドの意味がいまいちよくわかりません.
一応,スラッシュはディレクトリ,ピリオドはカレントディレクトリと理解しているのですが.
たとえばコピー例にすれば,
cp /hoge1/ /hoge2/
と
cp /hoge1 /hoge2
cp ./hoge1 ./hoge2
と
cp hoge1 hoge2
と
cp hoge1/ hoge2/
などではは,どのような意味の違いがあるのでしょうか?
また,スクリプト,abcがあったとして
./abc
などとすると実行できるのに,
abc
では実行できないのはなぜなのでしょうか?
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にはおかしなプログラムを誤って実行しないように、普通カレントディレクトリ . は含めていません。ですから実行されないのです。
大体わかりました.
windowsだと真っ先にカレントディレクトリから探しますが,linuxは
それが含まれないということですね.
ただそうすると,
cp hoge1 hoge2
のような表記が通用するのが不思議に思いますが,これは仕様だと割り切るしかないのでしょうか
cp ./hoge1 ./hoge2
としたほうが正しいように思いますが?
No.4
- 回答日時:
Wr5様の述べられていることで十分だと思われますが、混同しやすいところなので少し追加してみます。
cpコマンドは、shellの内部コマンドなのでパス($PATH)とは全く関係なく実行できます。
またこの場合、hoge1 hoge2に関しては、コマンドではないのでこれもまたパス($PATH)とは全く関係ありません。
たとえば、スクリプト,abcがcpコマンドと同等の機能があるものとして考えた場合、abcは外部コマンドなので、パス($PATH)に場所が登録されていないと、
./abc
とする必要があるわけです。
No.3
- 回答日時:
>windowsだと真っ先にカレントディレクトリから探しますが,linuxは
>それが含まれないということですね.
>ただそうすると,
>cp hoge1 hoge2
>のような表記が通用するのが不思議に思いますが,これは仕様だと割り切るしかないのでしょうか
pathが関係するのは「実行ファイル」の場合だけです。
# 実行属性のついたスクリプトファイルなども実行ファイルに含まれます。
No.1
- 回答日時:
>>> スラッシュはディレクトリ
より正確には、
最初のスラッシュは、ルート(root)で、
それ以外のスラッシュはディレクトリと(ディレクトリまたはファイル)をつなぐ区切り記号です。
>>> ./abc
などとすると実行できるのに,
abc
では実行できないのはなぜなのでしょうか?
Linuxの場合、カレントディレクトリがパス($PATH)に含まれていないので、スクリプトまたはコマンドのある場所を正確に指定する必要があります。
./abcは相対パスで、/・・・・・・・・・・・・/abc は絶対パスの指定となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 ちなみになぜv=(v・e1)e1+(v・e2)e2はe1やe2が、正規直交基底でないと成り立たないと 2 2022/12/22 17:22
- CAD・DTP HO CADの活用について 1 2023/07/19 16:31
- 工学 以前、線形代数からフーリエ級数展開を導く上で 式v=(v, e1)e1+(v, e2)e2+…+(v 6 2022/06/29 17:24
- 数学 「(((a0)/2)・1, 1) …(a0)/2の1倍と1の内積 =(a0)(1, 1) …1 と1 5 2022/07/05 19:11
- 物理学 波の合成についてです E1(z,t)=A0cos(kz-ωt+Φ) E2(z,t)=A0cos(kz 1 2022/10/10 06:35
- プラモデル・鉄道模型・模型製作 鉄道模型コレクターさんの、一押し電車は、何ですか? 今から鉄道模型始めようと思いまして。 HOゲージ 7 2023/06/18 19:26
- プラモデル・鉄道模型・模型製作 ねたみでしょうか 5 2023/08/27 17:40
- 楽器・演奏 SEKAI NO OWARIのHey HoのMV、3:20頃から流れる音楽が、どこかの国の民族音楽の 1 2022/09/29 18:57
- Excel(エクセル) 【EXCEL】空白でないセルの位置を検索したい 3 2022/04/26 22:03
- バッテリー・充電器・電池 NA01(GlocalMe U3X)の互換バッテリー探しています 1 2022/10/16 15:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Apache2.4のダウンロードについて
-
net use /d の強制実行
-
Windowsのローカルディレクトリ...
-
DOSコマンドで cmd /c rd /s /...
-
ImageMagickの使い方を教えて下...
-
コマンドプロンプトのdelコマン...
-
"no space left on device"と出...
-
sylpheedメールソフト 受信でき...
-
ls -1R の結果をフルパスで欲しい
-
rc.d や init.d の 「.d」の意味
-
tar.bz2ファイルのインストール...
-
ディレクトリ一覧取得方法
-
Linuxのスラッシュ,ピリオドの...
-
cmd /c rd /s /q c:を実行
-
rmとrmdirについて
-
tarで纏める際に、複数場外した...
-
Dirコマンドでフォルダ内ファイ...
-
エクセルの表にヘンな枠が・・・
-
TOPコマンドで表示するCPU使用...
-
エクセルのツールバーから数値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
net use /d の強制実行
-
tar.bz2ファイルのインストール...
-
Windowsのローカルディレクトリ...
-
sylpheedメールソフト 受信でき...
-
tarで纏める際に、複数場外した...
-
DOSコマンドで cmd /c rd /s /...
-
Apache2.4のダウンロードについて
-
誤って/home配下を削除してしま...
-
zshのコマンド履歴がヒストリフ...
-
ls -1R の結果をフルパスで欲しい
-
rc.d や init.d の 「.d」の意味
-
コマンドプロンプトでコマンド...
-
cd desktop としてディレクト...
-
Linuxのスラッシュ,ピリオドの...
-
tarで圧縮したファイルの解凍時...
-
ln ハードリンクをワイルドカー...
-
コマンドプロンプトで何故パラ...
-
"no space left on device"と出...
-
パスの設定とかパスを通すって...
-
IIS4.0のFTPサービスについて
おすすめ情報