bash中的realpath是什么意思
时间: 2024-04-29 22:21:33 浏览: 127
`realpath` 是一个 Bash 命令,用于获取指定文件或目录的绝对路径。它会将所有符号链接解析为最终的目标路径,并返回该路径的绝对表示形式。这在需要明确指定文件或目录位置的脚本中非常有用。例如,如果你需要在脚本中打开一个文件,但不确定它的确切位置,可以使用 `realpath` 来获取绝对路径。命令格式如下:
```
realpath FILENAME
```
其中,`FILENAME` 是要获取绝对路径的文件或目录名。
相关问题
编程题: 自己实现bash realpath (化简绝对路径)
实现bash realpath的方法有很多,下面提供一种简单的实现思路:
1. 使用split('/')函数将绝对路径按照'/'分割成一个列表。
2. 遍历列表,对于每个非空字符串,如果是'.',则跳过;如果是'..',则将上一个非'..'字符串从结果列表中删除;否则将该字符串添加到结果列表中。
3. 如果原始路径以'/'结尾,则将结果列表中添加一个空字符串。
4. 将结果列表中的字符串用'/'连接起来,得到化简后的绝对路径。
示例代码如下:
```python
def realpath(path):
parts = path.split('/')
result = []
for part in parts:
if not part or part == '.':
continue
elif part == '..':
if result:
result.pop()
else:
result.append(part)
if path.endswith('/'):
result.append('')
return '/' + '/'.join(result)
```
测试:
```python
print(realpath('/usr/local/./bin/'))
print(realpath('/usr/local/../bin/'))
print(realpath('/usr/local/bin/'))
```
输出:
```
/usr/local/bin
/usr/bin
/usr/local/bin
```
local SCRIPT_DIR="$(dirname "$(realpath "$0")")"
这是一个 Bash 脚本命令,它的作用是获取当前脚本文件所在的目录路径,并将其存储在 SCRIPT_DIR 变量中。
具体来说,该命令使用 realpath 命令获取当前脚本文件的绝对路径,然后使用 dirname 命令获取该路径的父目录路径,并将其存储在 SCRIPT_DIR 变量中。
其中,$0 表示当前脚本文件的名称,realpath 命令可以将其转换为绝对路径,dirname 命令可以获取该路径的父目录路径。local 关键字表示 SCRIPT_DIR 变量是一个本地变量,只在当前 Bash 脚本中有效。
阅读全文