アプリ版:「スタンプのみでお礼する」機能のリリースについて

一つ上の階層の・・・という意味の「../ファイル名」に対して、同じ階層内の・・・という意味の「./ファイル名」がありますよね。

後者はただ「ファイル名」と書いても同じ意味になると思うのですが、「./」を書く意味って何なんでしょうか?

もし「./ファイル名」と表記しなければならない状況があるとすればどんな時でしょうか?
参考までに知っている方がいらっしゃったら教えて下さい。

A 回答 (2件)

がると申します。


./を明示的に書くのは基本的に「セキュリティ」が理由です。
そうですねぇ。例えば。./がpathに入っているために、./を書かない癖が付いているとします。
いつも自分のホームディレクトリにある、hogeという実行ファイルを
hoge
と実行してみました。普通に実行されます。
………で。もし、pathが
/home/akui/yabai/
ってpath(悪意ある攻撃者が仕込んだディレクトリ&ファイル)を先に指し示していた場合。
/home/my/hoge
を起動しているつもりで、実は
/home/akui/yabai/hoge
を実行していた、なんてことが起き得てしまいます。

そのために、特にセキュリティ上の理由などから、原則フルパスで打ち込むか、最低でも相対ディレクトリ指定で、./からスタートさせてコマンドを打つのが通例となっています。
    • good
    • 0
この回答へのお礼

> /home/my/hoge
> を起動しているつもりで、実は
> /home/akui/yabai/hoge
> を実行していた、なんてことが起き得てしまいます。

具体的な例と理由付きで、大変わかりやすかったです。
セキュリティのため、確かに必要そうですね。
とても参考になりました。

お礼日時:2006/06/13 09:19

明示的にパスを記述しているということで意味があると思います。


例えばunixなどのシェルにおいて、
カレントにfilenameという実行プログラムがあるとき、
filename
と打っても実行できません。コマンドがないと言われるでしょう。
./filename
と実行します。
(ふつうカレントをPATHに含めないので)

どこかPATHの通っているところに同名のコマンドがあったらやらしいですよね。
しかし./があればこれが動作するのは明らかですね。
    • good
    • 0
この回答へのお礼

> 例えばunixなどのシェルにおいて、
> カレントにfilenameという実行プログラムがあるとき、

なるほど。
自分の知っている範囲でしか考えていなかったので、
そういう場合があるとは知りませんでした。

参考になりました。ありがとうございます。

お礼日時:2006/06/13 09:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!