chdir的目的是带有一个单点(cd。)

这可能是一个菜鸟问题。

在bash中工作时,如果我们运行cd .,它将保留在当前文件夹中。 我了解该功能,但是我无法理解该功能的原理吗?

使用这种方法有哪些实际方法?

iCMS 回答:chdir的目的是带有一个单点(cd。)

我在cd .中看到的主要用例是测试您在当前目录上的文件句柄是否仍然有效。

如果您位于网络共享中的目录(例如NFS等)上,则可以远程删除目录,但对于本地客户端来说,它们仍然可以访问和使用它们。

cd .是一种在当前工作目录上的句柄不再有效时触发错误的方法。

,

该命令没有功能。但是在符合POSIX的环境中,如果添加-P选项,则它具有功能:它可以解析符号链接。例如,在Mac上,如果您cd到带有符号链接的路径:

cd /System/Library/Frameworks/AppKit.framework/Versions/Current

...然后做cd -P . ...您将指向:

/System/Library/Frameworks/AppKit.framework/Versions/C
,

这是我想到的唯一一个“实用”案例

$ cd .
cd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

当您的进程具有当前工作目录时,该目录引用了另一个进程已删除的目录。

,

.是代表当前目录的特殊文件。

有很多东西可以利用目录,有时引用当前目录会很有用。

将目录更改为不是当前目录之一。

,

cd .失败的简单示例:

mkdir my_error
cd my_error
rm -rf ../my_error
cd .

rm嵌入到困难的脚本中或可以通过其他一些清理过程完成时,这可能是有用的检查。

,

我使用一个构建脚本来删除并重新创建目录。

旧目录消失,新目录显示新的inode。

如果在我的一个外壳中,我的$ PWD是重新出现的目录,并且我注意到 它变得不可用了(我知道它是重新创建的),我只是

$ cd .

使(新)目录再次可用,并可以在那里继续工作。

本文链接:https://www.f2er.com/1661312.html

大家都在问