Linux环境中〜和/有什么区别?
有人可以解释一下这个区别吗?
答案 0 :(得分:8)
Tilde(〜)用于表示用户的主目录,而斜杠(/)用于绝对路径和相对路径中的文件系统对象的分隔符。它也用于表示根目录。
旁注:
〜/用于表示用户主目录下的文件或目录路径的开头。
答案 1 :(得分:8)
〜包含当前用户主目录的路径(它扩展为 $ HOME env变量)。如果您运行:
echo ~
它将打印此路径。斜杠字符/被Linux(和其他操作系统)用作路径分隔符。另外,在Linux中,如果你这样做:
cd /
它将带您进入 root 目录(文件系统的最顶层目录)
答案 2 :(得分:1)
/
是分隔目录的字符。作为路径中的第一个字符,它表示根目录。
~
是某些shell扩展到用户主目录的字符。请参阅man bash
中的“Tilde Expansion”:
如果一个单词以不带引号的代字号(`〜')开头,则第一个不带引号的斜杠前面的所有字符(或者所有字符,如果没有未加引号的斜杠)都是 被认为是波浪号前缀。如果没有引用tilde-prefix中的字符, 波浪号后面的波浪号前缀中的字符被视为可能的登录 名称。如果此登录名是空字符串,则将波形符替换为值 shell参数HOME。如果未设置HOME,则执行用户的主目录 而是取而代之的是shell。否则,tilde-prefix将替换为 与指定登录名关联的主目录。
如果tilde-prefix是
~+
,则shell变量PWD的值将替换tilde-prefix。如果tilde-prefix是~-
,则shell变量OLDPWD的值(如果是) 设置,被替换。如果波形符后面的字符在波浪号前缀中 由数字N组成,可选地以+
或-
为前缀,波浪号前缀为 替换为目录堆栈中的相应元素,因为它将以使用tilde-prefix作为参数调用的内置函数显示。如果波浪号前缀中波浪号后面的字符由不带前导的数字组成 假设+
或-
,+
。如果登录名无效,或者代字号扩展失败,则该字不变。
检查每个变量赋值是否紧跟在后面的未加引号的波浪号前缀
:
或第一个=
。在这些情况下,还执行波浪扩展。所以, 在PATH,MAILPATH和CDPATH的赋值中,可以使用带有波浪号的文件名 shell指定扩展值。
答案 3 :(得分:0)
简单的答案是:
/
是您的根目录
~
是您的主目录
答案 4 :(得分:0)
要测试这个类型 cd / 或 cd ~ 然后 pwd 它将显示确切的本地