回答:
いいえ、あなたの仮定は間違っています。my_script
ホームディレクトリからのファイルのフルパス名は次のとおり/home/your_user_name/my_script
です。あなたが入力すると./my_script
、端末にあなたが実際に(実行可能な場合)スクリプトを実行しようとすると、あなたの現在の作業ディレクトリがある場合にのみ実行されます/home/your_user_name/
。スクリプトを実行するには、フルファイルパスを使用することもできます/home/your_user_name/my_script
。
UNIXのパス名は、インターネットアドレスのように見えるため、互換性が生じると考えられています。現在の作業ディレクトリの完全パス名は、次のコマンドを使用してターミナルで見つけることができます。
pwd
ユーザーのホームディレクトリのフルパスを見つけるには、次を使用できます。
echo ~
echo $HOME
echo /home/$USER
上記の3つのコマンドは同等です。
ファイルのフルパス名を調べるには、readlink
コマンドを使用できます。たとえば、あなたの場合:
cd ~
readlink -f my_script
readlink
はソフトリンクの実際のパスを明らかにします
完全なパスを理解するには、最初に開始点を知る必要があります。
ルートディレクトリ/
は、* nixベースのオペレーティングシステムの開始点です。システムとユーザーの両方の他のすべてのディレクトリが含まれています。
ユーザーのホームディレクトリ/home/USERNAME/
または~/
略して、ユーザーのファイルとディレクトリが含まれます。たとえば、画像、音楽、ドキュメントなど。これらの各ディレクトリは/home/USERNAME/DIRECTORY
、たとえばドキュメントがにあるように参照され/home/USERNAME/Documents
ます。
ディレクトリと同様に、ファイルは同じ方法で参照されます。たとえばmy_script
、ユーザーのホームディレクトリにある名前のファイルは、sosytee
フルパスを使用して、/home/sosytee/my_script
または~/my_script
略して参照できます。
ファイルとディレクトリの両方は、システムのどこからでも完全なパスを使用して参照/アクセスできます。さらに、同じディレクトリにある場合、名前のみを使用してアクセスできます。たとえば、ユーザーが~/
端末を使用しているときに、my_script
ちょうどを使用してファイルにアクセスできます my_script
。
さらに、PATH変数に配置されている場合、名前のみを使用してディレクトリとファイルにアクセスできます。を使用して、PATHに保存されているものを確認できますecho $PATH
。
コマンドラインを使用してファイルにアクセスする方法の簡単な例:
/home/USERNAME/
を使用したいと考えています。cat
/home/USERNAME/Documents
cat Documents/foo.txt
ユーザーは中にいて~/Documents
、located foo.sh
ad という名前のスクリプトを実行したいと考えています~/Scripts/Foo
。
sh ../Scripts/Foo/foo.sh
または
sh ~/Scripts/Foo/foo.sh
どうしてもこれは単なる要約です。
さらに詳しい情報
Machtelt Garrelsによる初心者向けBashガイド
PATHの詳細はこちら
Unixのディレクトリ構造について
フルパス名は./my_scriptであると仮定しました
いいえそうではありません。そのパスは相対的です。先頭のポイントは、現在のディレクトリを示します。
$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory
ご覧のとおり、ディレクトリを変更しmy_script
ましたが見つかり./my_script
ません。つまり、絶対パスではありません。
フルパス名は./my_scriptであると想定しました。これは、ルートフォルダーにあることを意味しますが、わかりません。
ウィキペディアから:
[...]完全パスまたは絶対パスは、作業ディレクトリまたは結合パスに関係なく、1つのファイルシステム上の同じ場所を指すパスです。
私はいつでもファイルを見つけることができる./my_script
という条件を満たさないので、それは相対パスであると推測する必要があります。my_script
相対パスは、完全な絶対パスが与えられなければならないように、ユーザーまたはアプリケーションの作業ディレクトリへの相対パスです。
ここに... WindowsにUbuntuサーバーをインストールしたのであなたが尋ねていると仮定します...
このコードをWindowsのフォルダーエクスプローラーにコピーします %userprofile%\AppData\Local\Packages
自宅の場所が表示されます...システムのどこかに隠れています
このフォルダーで、ファイルを表示するLinuxディストリビューションのフォルダーをダブルクリックします。
これらのフォルダーの名前は、将来わずかに変更される可能性があります。Linuxディストリビューションにちなんで名付けられたフォルダーを探してください。
あなたの家は下になります LocalState\rootfs\home
この情報のほとんどは、Windows(およびBashのWindowsシステムドライブ)でUbuntu Bashファイルにアクセスする方法から取得されました。