なぜファイルを指定する際に「./」を付けるのか?

このQ&Aのポイント
  • ファイルを指定する際に「./」を付ける理由にはいくつかの可能性があります。
  • Unix/Linuxにおいて、カレントディレクトリの実行ファイルを実行する際には「./」を付ける必要があるため、この書き方が習慣化している可能性があります。
  • また、開発ツールとの連携によって特定の場所のファイルを指定する際には「./」を付けることで便利な機能がある場合もあります。
回答を見る
  • ベストアンサー

filename="./foo"等と書く気持ちは?

HTMLだと <a href="./foo.html"> とか、プログラムだと FILE="./foo.txt" とか、カレントディレクトリのファイルを指定するときに、./ を付けるのをたまに見かけます。 これはどういう気持ちで書いているんでしょうか? 一応、考えたのは、Unix/Linuxだとカレントディレクトリの実行ファイルを実行するときは、./foo のようにしないといけないので、これで困った経験のある人が、「羮に懲りて膾を吹く」ということで付けているのかと思いましたが、それだけでもない気がして質問してみました。 開発ツールとの連携で、こう書いておくと便利なことがあったりするのでしょうか?

  • notnot
  • お礼率77% (192/248)

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

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.3

>> 一括で置換するときとか、検索したいとき便利かな。 > 便利ですか?そんな気はしないのですが。 まあ強いて言えば程度だけど、実行ファイル云々よりは。 例えば vi なら /"\.\/ とかすれば、カレントディレクトリのファイルだけ探せるでしょ? (多少は余計なものも掛かるかもしれないが)

notnot
質問者

お礼

ありがとうございます。 なるほど。"./"無しの<a href="foo">等の場合だと、カレントディレクトリのファイルだけを検索する時に"http://" 等を避けるのは面倒ですね。

その他の回答 (2)

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.2

実際は書いた人しか分からんけど、一括で置換するときとか、検索したいとき便利かな。

notnot
質問者

お礼

ありがとうございます。 > 一括で置換するときとか、検索したいとき便利かな。 便利ですか?そんな気はしないのですが。

  • maiko0333
  • ベストアンサー率19% (840/4403)
回答No.1

>Unix/Linuxだとカレントディレクトリの実行ファイルを実行するときは、./foo のようにしないといけないので、これで困った経験のある人 だいたい合ってる。 字下げも必要ないと言えば必要ない。

notnot
質問者

お礼

ありがとうございます。 > だいたい合ってる。 やはりそういう人がいたんですね。 > 字下げも必要ないと言えば必要ない。 すいません。質問との関連が分かりません。

関連するQ&A

  • unixのawkについて

    unixでawkを使ってフルパスからディレクトリとファイル名に分けようと しているのですが、上手くいきません。 例えば ①/aaa/bbb/ccc ②/111/222/333/hoge.txt ③/hoge/foo/bar/dk@0:1 を ①/aaa/bbb と ccc ②/111/222/333 と hoge.txt ③/hoge/foo/bar と dk@0:1 としたいのです。 echo "/111/222/333/hoge.txt" | gawk '{sub(/\/.*$/,"",$0); print}' としてみたのですが、 ディレクトリだけを取り出そうとしたのですが上手くいきません。 よろしくお願いします。 OSは、Solaris、Linuxになります。

  • cgiのsystem関数を用い、ファイル作成したい

    いつもお世話になっております。 今回、質問させて頂く問題と内容は以下になります。 解決したい問題 cgiから、自作した実行ファイル「create_file」を動かしファイルを作成したい。 構成は以下になります。 OS:Ubuntu 10.10 作業ディレクトリ /var/www/cgi-bin ファイルと機能 index.html : cgiの呼び出し用html。 create.cgi : 実行ファイル「create_file」を呼び出す。 create_file : 実行ファイル。実行すると同ディレクトリに”result.txt”を作成する。 以上の構成でindex.htmlを開いた際にcreate.cgiがcreate_fileを呼び出し、result.txtを 同ディレクトリに作成するようにしたいのですが、実現できません。 create_file単体を実行した際は、同ディレクトリにresult.txtが作成されるので、create_fileを呼び出す箇所が上手くいっていない様です。 尚、create.cgiにおけるcreate_file呼び出しを以下のようにしています。 index.html <HTML>  <BODY>    <a href = "create.cgi">cgi呼び出し</href>  </BODY> </HTML> create.cgi ~~~~~~~~~~~~~~~~~~~~ chmod(0755,"./create_file"); system`./create_file`; ~~~~~~~~~~~~~~~~~~~~ 情報が少なく申し訳ないのですが、問題箇所が分かる方いらっしゃいませいたら、どうぞ御教授お願い致します。

    • 締切済み
    • CGI
  • WindowsでPATHにあるコマンドを補完?

    お世話になります。 Windowsのコマンドラインプロンプトでは、ある程度タイプして[TAB}キーを押下すると、カレントディレクトリにあるファイル名を補完してくれます。 たとえば xxxxYYY というファイルがあるディレクトリにおいて  C:\foo\> x[TAB] のようにタイプすると、xxxxYYYと補完されます。 LinuxやMacを含むUNIX系のコマンドライン環境では、カレントディレクトリだけでなく、PATHに入っているコマンドも補完してくれます。具体的に言うと、C:\myProgram\bin\xxxxYYY.exeというコマンドを、C:\fooという全然違うカレントディレクトリにあっても、  C:\foo\> x[TAB] で補完してくれます。 この、PATHにあるコマンド名の補完は、Windowsでも可能でしょうが。 具体的には、何らかのフリーウェアを常駐させる、レジストリを書き換えるなどによって、可能になるでしょうか。 私は20年以上DOS/Windowsを使い込んでいるのですが、この機能さえあれば本当に助かります。 Linuxを使え、WindowsでCygwinを使えというのはナシで、あくまでWindowsのcmdを使い続けるという前提でお願いします。 よろしくお願いいたします。

  • grepコマンドの使い方

    下記のようなファイルがあるとします。 カレントディレクトリ /home から"hello"という文字列が含まれるテキストを grepしたい場合、コマンドはどのようにすればいいのでしょうか? 色々な方法があると思いますが、よろしくお願いします。 ---------------------------------------------------------------------- /home/hoge1/foo1.txt foo2.exe foo3.txt /home/hoge2/hogehoge2/foo4.txt foo5.exe /home/hoge3/hogehogehoge3/foo6.txt foo7.exe foo8.zip ----------------------------------------------------------------------

  • awkの正規表現について

    ディレクトリ名とファイル名の一覧ファイルがあり、その中から特定ディレクトリの1階層下のディレクトリ名とファイル名を取得したいのですが、うまく抽出できません。 ディレクトリ名とファイル名の一覧ファイル(dir.txt)は /foo/ /foo/bar/ /foo/bar/a.txt /foo/bar/sub/ /foo/bar/sub/x.txt /foo/var/ /foo/var/b.txt /usr/ /usr/bar/ で「/foo/」指定すると /foo/ /foo/bar/ /foo/var/ を抽出し 「/foo/var/」を指定すると /foo/var/ /foo/var/b.txt を抽出したいです。 この場合、awk '$1 ~ /^\/foo\/bar\// {print}' dir.txtとすると /foo/bar/ /foo/bar/a.txt /foo/bar/sub/ /foo/bar/sub/x.txt が抽出されてしまいます。 どのような書き方をすれば1階層下のディレクトリとファイルのみを 抽出できるのでしょうか?

  • ファイル指定

    こんにちは。 UNIXでPHPを勉強しています。 ファイルの存在チェックをしたいのですが、 if(file_exists($file)){ としています。 $fileにはファイルチェックするファイルと同じディレクトリ内の workというフォルダのtest.txtファイル名を格納したいと考えています。 $fileには どのようにいれればいいのでしょうか? windowsだと $file="work\\test.txt"; でだいじょうぶなのですが・・・

    • ベストアンサー
    • PHP
  • renameTo()メソッドについて

    もうひとつお願いいたします。 ファイル名をリネームするプログラムを作りたいのです。 そこでリファレンスを見ると、 renameTo()と言うちょうどよさそうなメソッドを見つけました。 カレントディレクトリに testと言うフォルダを作りSampleと言うダミーTXTを置いてHenkaに変わるかどうか実験しました。 File d = new File(".\\test\\Sample.txt"); File e = new File(".\\test\\Henka.txt"); d.renameTo(e); .... まったく変化なしです(^_^;) そこでグーグルでちょっと調べたところ”ファイルを移動する”ために使うと言う記述ばかりでした・・・ そこでeを File e = new File(".\\test\\Henka\\Sample.txt"); のようにしてTESTフォルダにさらにHenkaフォルダを作って実行しました・・・ すると 見事に(??)移動しました・・・(~_~;) これはどういうことなんでしょうか・・・ リファレンスには確かに「ファイル名変更」とあります。 なのに移動・・・ どうすればリネームできるか、教えてほしいです・・・

    • ベストアンサー
    • Java
  • Cronでのカレントディレクトリについて

    3日前からVine Linuxを初めてインストールしまして、 自宅サーバをやろうとしている、初心者です。 これまではxrea.comのレンタルスペースを借りてphpでコンテンツを作っていました。 phpをCronを使って、定期的実行する際に [シェルファイル] #!/bin/sh #PHP /usr/bin/php /var/www/html/filename.php exit のようにしてファイル操作をするphpを実行させたのですが [filename.php] <?php $fp=fopen("../data/dat.txt","w"); fputs($fp,$data); fclose($fp); ?> で実行したところURLからは問題なく dat.txt の内容を編集することができるのですが cronからだと PHP Warning: fopen(../data/data.txt): failed to open stream: No such file or directory となります。 そこでカレントディレクトリを調べると /root/PHPs/ となっていたので、そのようなエラーになっていました (1)カレントディレクトリを変更するコードを毎回phpに組み込む (2)フルパスでファイルを指定する ことでこのトラブルは回避されるのですが、 xrea.comでは、相対パス、カレントディレクトリを毎回指定しなくても、実行できていました。 cronでphpを実行する際に、phpが存在するディレクトリへ 自動でカレントディレクトリを移動するようにしたいです。 そのような方法があれば、教えてくください。

  • HTML文字列を取得→加工→書き出すスクリプト

    CGI(perl)がこういうHTMLを書き出すのですが、 <html> <body> <p><a href="file:///C:\temp\hoge1.txt">file:///C:\temp\hoge1.txt</a></p> <p><a href="file:///C:\temp24\hoge2.txt">file:///C:\temp24\hoge2.txt</a></p> :(中略) <p><a href="file:///C:\temp78\hoge15.txt">file:///C:\temp78\hoge15.txt</a></p> </body> </html> ↑のハイパーリンクに加え、hoge.txtが置かれている親フォルダへの リンクも併設したいです。イメージとしては、次のような感じです、 <html> <body> <p><a href="file:///C:\temp\hoge1.txt">file:///C:\temp\hoge1.txt</a><br> ↑のファイルがあるフォルダを開くなら<a href="file:///C:\temp\">こちら</a></p> <p><a href="file:///C:\temp24\hoge1.txt">file:///C:\temp24\hoge1.txt</a><br> ↑のファイルがあるフォルダを開くなら<a href="file:///C:\temp24\">こちら</a></p> :(中略) <p><a href="file:///C:\temp78\hoge15.txt">file:///C:\temp78\hoge15.txt</a><br> ↑のファイルがあるフォルダを開くなら<a href="file:///C:\temp78\">こちら</a></p> </body> </html> みたいに、ページを表示するたびに フォルダパスも記述されるという… JavaScriptで実現できますでしょうか?よろしくお願い致します。

  • ファイル名が記入されたファイルを読み込んでcdする

    ファイル名が記入されたファイルを読み込んでカレントディレクトリを変更するにはどうしたら良いでしょうか?   具体的に申し上げると、    カレントディレクトリに filepass.txt というファイルが存在し、 中身には、例えば、 C:\Software と書かれています。   MATLABで、 filepass.txtを読み込み、 中に書かれている、 ディレクトリ名に、   カレントディレクトリを変更する(cd) にはどうしたらよいでしょうか?

専門家に質問してみよう