Answers:
不,您的假设是错误的。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
readlink
揭示了软链接的实际路径
为了理解完整的路径,您必须首先知道起点。
根目录/
是基于* nix的操作系统的起点。它包含系统和用户的所有其他目录。
用户的主目录/home/USERNAME/
或~/
简称包含用户的文件和目录。例如图片,音乐,文档等。每个目录都被引用/home/USERNAME/DIRECTORY
,例如文档位于/home/USERNAME/Documents
。
与目录一样,文件的引用方式相同,例如my_script
,sosytee
可以使用完整路径/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.sh
locate ad 的脚本~/Scripts/Foo
:
sh ../Scripts/Foo/foo.sh
要么
sh ~/Scripts/Foo/foo.sh
无论如何,这仅仅是一个总结。
更多信息
我假设完整的路径名称是./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
文件的条件,因此我们应该推断出这是相对路径。
一个相对路径是相对于用户或应用程序的工作目录的路径,所以完整的绝对路径就不必给出。
在这里...我想您是在问问题,因为您在Windows上安装了Ubuntu服务器...
将此代码复制到Windows上的文件夹资源管理器中 %userprofile%\AppData\Local\Packages
它将显示您的家庭位置...它隐藏在系统中的某个位置
在此文件夹中,双击您要查看其文件的Linux发行版的文件夹:
这些文件夹的名称将来可能会稍有变化。只需查找以Linux发行版命名的文件夹。
你的家将在 LocalState\rootfs\home