web-dev-qa-db-ja.com

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

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

20
sosytee

いいえ、あなたの仮定は間違っています。ホームディレクトリからの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
28
Radu Rădeanu

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

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

/home/your_username/my_script

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

/bin/grep

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

7
hytromo

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

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

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

さらに詳しい情報

3
Stef K

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

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

2
Nodebody

フルパス名は./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_scriptmy_scriptファイルが見つかるたびにという条件を満たさないため、相対パスであると推測する必要があります。

相対パスはユーザーまたはアプリケーションの作業ディレクトリからの相対パスであるため、完全な絶対パスを指定する必要はありません。

2
Braiam

ここに... 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でUbuntu Bashファイル(およびBashのWindowsシステムドライブ)にアクセスする方法

0
Hammao