- ベストアンサー
Linuxでシェルスクリプトがフルパスだと実行できない
- Linuxでシェルスクリプトがフルパスだと実行できない理由とは?
- フルパスでのシェルスクリプト実行が失敗する原因とは?
- Linuxでフルパス指定でシェルスクリプトを実行する際のエラーの解決方法
- みんなの回答 (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)
>./home/user/test.sh 先頭の.はカレントディレクトリを示しています。これだとフルパスではありません。 フルパスとは先頭が/で始まります。 どうして./home/user/test.shとしたいなら cd / でカレントディレクトリを/に移動してから実行してください。
- D-Matsu
- ベストアンサー率45% (1080/2394)
./home/user/test.sh "."はカレントディレクトリを示す記号です。つまりこれは絶対パスではなく相対パスなのです。
- tatsu99
- ベストアンサー率52% (391/751)
フルパス場合、./home/.....の先頭の.はいらないはずです。 それだと、カレントディレクトリ下に/homeがあることになります。