• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Linuxでシェルスクリプトがフルパスだと実行できない)

Linuxでシェルスクリプトがフルパスだと実行できない

このQ&Aのポイント
  • Linuxでシェルスクリプトがフルパスだと実行できない理由とは?
  • フルパスでのシェルスクリプト実行が失敗する原因とは?
  • Linuxでフルパス指定でシェルスクリプトを実行する際のエラーの解決方法

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

  • ベストアンサー
  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.4

まぁ、./の意味は、Windowsでの.\と同じなので MS-DOSで育った人だと、勘違いも起きないんですけどね… .や..が表すのはカレントディレクトリーやその一つ上のディレクトリーです。 WindowsやMS-DOSではDIRコマンドを使えば、.や..も表示されますし DIRの結果では、ファイル数表示にも、+2のファイル数が表示されます。 ゆえにMS-DOS時代にはLinux以上に常識でした。 Linuxでは.で始まるファイル名は標準状態で表示されませんから .と..も、lsコマンドなどで通常表示されません。 ですから「ls -aで表示されるかどうか?」といきなり聞かれても 自信を持って答えられない人も少なくないと思います。 まぁ表示されるんですけどね。今やってみて知りました。 C:が起動ドライブの場合のWindowsでの C:\に相当するのが、UNIX系OSでの/です。 CMD.EXEを起動すると、C:\Document and Settings\USERが カレントディレクトリーになっているような気がしますが (うちにはWindows飼っていないので確認しません) このディクレクトリーに相当するのが UNIX系のOSでのcd[RETURN]で移動するホームディレクトリーです。 /home/user/における./home/user/test.shという指定は C:\Document and Settings\USERにおいて .\Document and Setiings\USER\test.batと指定するのと同じで Windowsでは… C:\Document and Settings\USER\Document and Settings\USER\test.bat という意味になります。 C:\Document and Settings\USER\test.batに相当するのは /home/user/test.shなわけです。 余談ですが、cdで戻る/home/userディレクトリーが UNIXにおける狭義のホームで、文脈によって意味が違ってきます。 .bashrcのような設定ファイルであるドットファイルは 個人設定としてホームディレクトリーに保存しますが この場合は狭義のホームディレクトリーを意味します。 「個人的なデータはホームディレクトリーに保存する」と言えば 厳密に言えば「ホームディレクトリー下に保存」と表現すべきですが 広義のホームディレクトリーとして解釈するのが普通です。 でも、「~/はホームディレクトリーを示す」と言えば 狭義のホームディレクトリーを意味します。 このへんは、あんまり意識して書かれないことがあります。 そのくらい、ホームディレクトリーの扱い方は 常識となっていますから、おかしいと思った時は 用語や書式やオプションの意味を マニュアルやウェブの記事で再確認するといいです。

その他の回答 (3)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.3

>./home/user/test.sh 先頭の.はカレントディレクトリを示しています。これだとフルパスではありません。 フルパスとは先頭が/で始まります。 どうして./home/user/test.shとしたいなら cd / でカレントディレクトリを/に移動してから実行してください。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

./home/user/test.sh "."はカレントディレクトリを示す記号です。つまりこれは絶対パスではなく相対パスなのです。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

フルパス場合、./home/.....の先頭の.はいらないはずです。 それだと、カレントディレクトリ下に/homeがあることになります。

関連するQ&A