
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
net use /d の強制実行
-
コマンドプロンプトでコマンド...
-
ls -1R の結果をフルパスで欲しい
-
Windowsのローカルディレクトリ...
-
ディレクトリ削除 Dosコマンド
-
Apache2.4のダウンロードについて
-
絶対パスでアーカイブされたフ...
-
tarで纏める際に、複数場外した...
-
ディレクトリが作れません。
-
誤って/home配下を削除してしま...
-
Dirコマンドでフォルダ内ファイ...
-
TOPコマンドで表示するCPU使用...
-
ファイル名についている「-」と...
-
Linux のシェルスクリプトの強...
-
IPアドレスだとPingが通るのに...
-
SONYの音楽ソフト「x-アプリ」...
-
スクリプトのエラー「unexpecte...
-
ラズパイで『’test.service’をs...
-
pingは正常なのにtracerouteで...
-
-bash: ftp: コマンドが見つか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
net use /d の強制実行
-
Windowsのローカルディレクトリ...
-
tar.bz2ファイルのインストール...
-
Apache2.4のダウンロードについて
-
zshのコマンド履歴がヒストリフ...
-
コマンドプロンプトでコマンド...
-
tarでフォルダに上書き
-
sylpheedメールソフト 受信でき...
-
tarで纏める際に、複数場外した...
-
rc.d や init.d の 「.d」の意味
-
ls -1R の結果をフルパスで欲しい
-
ln ハードリンクをワイルドカー...
-
誤って/home配下を削除してしま...
-
tarで圧縮したファイルの解凍時...
-
コマンドプロンプトで何故パラ...
-
cd desktop としてディレクト...
-
ディレクトリが作れません。
-
FTPのエラーメッセージで質問で...
-
ImageMagickの使い方を教えて下...
-
所有者不明のディレクトリやフ...
おすすめ情報