在Bash中,为什么`cd //`工作并且等于`cd /`?

在Bash /terminal中, cd /可以把你带到你的根目录,这是相当有名的,不pipe你以前在哪里:

brian@brian-linux:~/redis-3.0.3$ cd / brian@brian-linux:/$ pwd / brian@brian-linux:/$ ls bin dev initrd.img.old libx32 opt sbin usr boot etc lib lost+found proc srv var cdrom home lib32 media root sys vmlinuz data initrd.img lib64 mnt run tmp vmlinuz.old brian@brian-linux:/$

今天我偶然发现了一个有趣的发现:

在Bash中, cd //把你带到目录// ,这跟根目录是一样的,但仍然被描述为// :

brian@brian-linux:~/redis-3.0.3$ cd // brian@brian-linux://$ ls bin dev initrd.img.old libx32 opt sbin usr boot etc lib lost+found proc srv var cdrom home lib32 media root sys vmlinuz data initrd.img lib64 mnt run tmp vmlinuz.old brian@brian-linux://$ pwd //

这里发生了什么,为什么会这样呢?

Bash脚本 – 发送电子邮件

我正在寻找批处理脚本,将多个文本文件的名称追加到每个文件的第一行

多字Bash脚本parameter passing给分离的屏幕

比较两个文件并获取相同行的输出

计算bash中有多less行继续到下一行?

还有一点值得注意的是, cd ///或任何数目的/大于2将会把你带到根目录/ 。 但是,从根目录, cd //带你到// :

brian@brian-linux:/$ cd /// brian@brian-linux:/$ cd // brian@brian-linux://$

在Bash中,一旦命令失败,如何不创buildredirect输出文件

curl命令不能通过shell脚本在bash中执行

-bash:imp:命令未findoracle

从awk脚本中的variablesstring中删除最后一行

超过20条命令的Linux Top命令

你可以有任何数量的/在文件路径。 /this/file/path完全等同于/this//file/////path 。

我不确定这是否是原因,但这意味着在自动生成路径时不太可能出现错误。 例如:

get_project_root() { echo "/the/project/root/" } get_project_data_subdirectory() { echo "data" }

如果我想使用这些函数来cd到项目的data目录,我可以这样做:

project_root=$(get_project_root) data_directory=$(get_project_data_directory) cd "${project_root}/${data_directory}"

现在cd命令实际上运行了:

cd /the/project/root//data

因为我在两个变量之间加了一个/ 。 我这样做是因为我可能不知道该函数是否会返回尾部/ ,它不需要和一些函数可能不会。 事实上,你可以有任何数量的斜杠意味着你可以添加他们是安全的,而不用担心打破命令。

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...