什么是全路径名?


21

我想了解完整路径名的真正含义。我的主目录中有一个名为my_script的文件。我假设完整路径名是./my_script,这意味着它在根文件夹中,但是我不确定。有人可以启发我吗?


您是否可以问“是否可以编写一个显示文件列表及其名称的命令?” 在另一个问题中
Braiam

Answers:


30

不,您的假设是错误的。my_script主目录中文件的完整路径名是:/home/your_user_name/my_script。当您输入./my_script终端时,您实际上会尝试执行脚本(如果可执行),并且仅当您当前的工作目录为时才会执行该脚本/home/your_user_name/。要执行脚本,您还可以使用完整的文件路径,正如我所说/home/your_user_name/my_script

可以认为UNIX路径名在外观上和感觉上都像Internet地址,因此具有兼容性。使用以下命令可在终端中找到当前工作目录的完整路径名:

pwd

要查找用户主目录的完整路径,可以使用:

echo ~
echo $HOME
echo /home/$USER

以上三个命令是等效的。

要查找文件的完整路径名,可以使用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_scriptsosytee可以使用完整路径/home/sosytee/my_script~/my_script简称来引用位于用户主目录中的命名文件。

可以使用文件和目录的完整路径从系统中的任何位置引用/访问文件和目录。此外,如果位于同一目录中,则只能使用其名称来访问它们。例如,如果用户在~/使用终端时位于,则可以my_script使用just 来访问文件 my_script

此外,如果将目录和文件放在其PATH变量中,则只能使用其名称来访问目录和文件。您可以使用来查看PATH中存储了什么echo $PATH

有关如何使用命令行访问文件的简单示例:

  • 用户当前在,/home/USERNAME/并且想cat/home/USERNAME/Documents名为foo.txt 的文件上使用命令:

cat Documents/foo.txt

  • 用户在里面,~/Documents并且想要运行一个名为foo.shlocate ad 的脚本~/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,这意味着它在根文件夹中,但是我不确定。

维基百科

[...]完整路径或绝对路径是指向一个文件系统上相同位置的路径,而不管工作目录或组合路径如何。

由于./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企业服务器1246932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

这些文件夹的名称将来可能会稍有变化。只需查找以Linux发行版命名的文件夹。

你的家将在 LocalState\rootfs\home

这些信息大部分来自如何访问Windows中的Ubuntu Bash文件(以及Bash中的Windows系统驱动器)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.