フルパス名が本当に何を意味するのかを理解したいと思います。ホームディレクトリにmy_scriptというファイルがあります。フルパス名は./my_scriptであると想定しました。これは、ルートフォルダーにあることを意味しますが、わかりません。誰かがそれを教えてくれますか?
いいえ、あなたの仮定は間違っています。ホームディレクトリからの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
完全パス名とは、ファイルシステムの/
ディレクトリからそのファイルまたはフォルダーへの完全パスを意味します。
たとえば、スクリプトへのフルパスは次のとおりです。
/home/your_username/my_script
または、grep
実行可能ファイルへのフルパス名は
/bin/grep
./my_script
に関しては、シンボル.
は現在のディレクトリを表しているため、実際には「現在のディレクトリの下でmy_scriptという名前のファイルまたはフォルダを探してください」と言います。
完全なパスを理解するには、最初に開始点を知る必要があります。
ルートディレクトリ/
は、* nixベースのオペレーティングシステムの出発点です。システムとユーザーの両方の他のすべてのディレクトリが含まれています。
ユーザーのホームディレクトリ/home/USERNAME/
または略して~/
には、ユーザーのファイルとディレクトリが含まれます。たとえば、写真、音楽、ドキュメントなど。これらの各ディレクトリは、/home/USERNAME/DIRECTORY
として参照されます。たとえば、ドキュメントは/home/USERNAME/Documents
にあります。
ディレクトリと同様に、ファイルは同じ方法で参照されます。たとえば、ユーザーのホームディレクトリにあるmy_script
という名前のファイルsosytee
は、フルパス/home/sosytee/my_script
または~/my_script
略して。
ファイルとディレクトリの両方は、システムのどこからでも完全なパスを使用して参照/アクセスできます。さらに、同じディレクトリにある場合、名前のみを使用してアクセスできます。たとえば、端末を使用しているときにユーザーが~/
にいる場合、my_script
だけを使用してmy_script
ファイルにアクセスできます。
さらに、PATH変数に配置されている場合、名前のみを使用してディレクトリとファイルにアクセスできます。 echo $PATH
を使用して、PATHに保存されているものを確認できます。
コマンドラインを使用してファイルにアクセスする方法の簡単な例:
/home/USERNAME/
にいて、/home/USERNAME/Documents
にあるfoo.txtという名前のファイルでcat
コマンドを使用したいと考えています。cat Documents/foo.txt
ユーザーは~/Documents
の中にいて、foo.sh
という名前のスクリプトを実行したいと考えています~/Scripts/Foo
:
sh ../Scripts/Foo/foo.sh
または
sh ~/Scripts/Foo/foo.sh
どうしてもこれは単なる要約です。
さらに詳しい情報
初心者向けBashガイド 、Machtelt Garrels著
PATHの詳細 こちら
nixディレクトリ構造 について
完全なパス名は、ルートディレクトリからのパスです(つまり、/
)。 ./my_script
は相対パス名です。これは、パスが.
で示される現在のディレクトリに対して相対的に指定されているためです。したがって、ホームディレクトリにいる場合、フルパスはs.thです。 /home/sosytee/my_script
など。ホームディレクトリには「ショートカット」~
があります。つまり、~/my_script
と書くこともできます。しかし、それはもちろん、ユーザーごとに異なるパスに解決されます。
現在のディレクトリの完全なパスを表示するには、pwd
を呼び出します。
フルパス名は./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であると想定しました。これは、ルートフォルダーにあることを意味しますが、わかりません。
Wikipedia から:
[...]完全パスまたは絶対パスは、作業ディレクトリまたは結合パスに関係なく、1つのファイルシステム上の同じ場所を指すパスです。 。
./my_script
はmy_script
ファイルが見つかるたびにという条件を満たさないため、相対パスであると推測する必要があります。
相対パスはユーザーまたはアプリケーションの作業ディレクトリからの相対パスであるため、完全な絶対パスを指定する必要はありません。
ここに... WindowsにUbuntuサーバーをインストールしたのであなたが尋ねていると仮定します...
このコードをWindows上のフォルダーエクスプローラーにコピーします%userprofile%\AppData\Local\Packages
自宅の場所が表示されます...システムのどこかに隠れています
このフォルダーで、ファイルを表示するLinuxディストリビューションのフォルダーをダブルクリックします。
これらのフォルダーの名前は、将来わずかに変更される可能性があります。 Linuxディストリビューションにちなんで名付けられたフォルダーを探してください。
あなたの家はLocalState\rootfs\home
の下にあります
この情報のほとんどは WindowsでUbuntu Bashファイル(およびBashのWindowsシステムドライブ)にアクセスする方法