フルパス名とは何ですか?


21

フルパス名が本当に何を意味するのかを理解したいと思います。ホームディレクトリにmy_scriptというファイルがあります。フルパス名は./my_scriptであると想定しました。これは、ルートフォルダーにあることを意味しますが、わかりません。誰かがそれを教えてくれますか?


「ファイル名と名前のリストを表示するコマンドを書くことは可能ですか?」中に別の新しい疑問
Braiam

回答:


30

いいえ、あなたの仮定は間違っています。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

+1 readlinkはソフトリンクの実際のパスを明らかにします
lamino

7

完全パス名とは、実際にはファイルシステムの/ディレクトリからそのファイルまたはフォルダへの完全パスを意味します。

たとえば、スクリプトへのフルパスは次のとおりです。

/home/your_username/my_script

または、grep実行可能ファイルへのフルパス名は

/bin/grep

については./my_script、シンボル.は現在のディレクトリを表しているので、実際には「現在のディレクトリの下でmy_scriptという名前のファイルまたはフォルダを探してください」と言います。


3

完全なパスを理解するには、最初に開始点を知る必要があります。

ルートディレクトリ/は、* 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

コマンドラインを使用してファイルにアクセスする方法の簡単な例:

  • ユーザーは現在foo.txtという名前のファイルにあるコマンド/home/USERNAME/を使用したいと考えています。cat/home/USERNAME/Documents

cat Documents/foo.txt

  • ユーザーは中にいて~/Documents、located foo.shad という名前のスクリプトを実行したいと考えています~/Scripts/Foo

    sh ../Scripts/Foo/foo.sh

    または

    sh ~/Scripts/Foo/foo.sh

どうしてもこれは単なる要約です。

さらに詳しい情報


2

完全パス名は、ルートディレクトリからのパス(つまり、/)です。 ./my_scriptは相対パス名です。これは、パスがで示されている現在のディレクトリに対して相対的に指定されているため.です したがって、ホームディレクトリにいる場合、フルパスはs.thです。のような/home/sosytee/my_script。ホームディレクトリには「ショートカット」~があります~/my_script。つまり、を書くこともできます。しかし、それはもちろん、ユーザーごとに異なるパスに解決されます。

現在のディレクトリの完全なパスを表示するには、を呼び出しますpwd


2

フルパス名は./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

相対パスは、完全な絶対パスが与えられなければならないように、ユーザーまたはアプリケーションの作業ディレクトリへの相対パスです。


0

ここに... WindowsにUbuntuサーバーをインストールしたのであなたが尋ねていると仮定します...

このコードをWindowsのフォルダーエクスプローラーにコピーします %userprofile%\AppData\Local\Packages

自宅の場所が表示されます...システムのどこかに隠れています

このフォルダーで、ファイルを表示するLinuxディストリビューションのフォルダーをダブルクリックします。

  1. Ubuntu:CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
  2. openSUSE Leap 42:46932SUSE.openSUSELeap42.2_022rs5jcyhyac
  3. SUSE Linux Enterprise Server 1246932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

これらのフォルダーの名前は、将来わずかに変更される可能性があります。Linuxディストリビューションにちなんで名付けられたフォルダーを探してください。

あなたの家は下になります LocalState\rootfs\home

この情報のほとんどは、Windows(およびBashのWindowsシステムドライブ)でUbuntu Bashファイルにアクセスする方法から取得されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.