在任何情况下“cd .”(单点)命令可能有用吗?

在任何情况下“cd .”(单点)命令可能有用吗?

理论上这应该是多余的,因为它更改为当前工作目录。无论如何,在实践中是否有任何场景可以使用此命令?

答案1

我立即想到至少两个cd .有用的案例:

  • 更新当前目录的inode号

    让我们说在1号航站楼你在某个目录和另一个目录中航站楼2您删除该目录并创建与已删除目录同名的新目录。然后能够在该目录中执行任何有用的操作(例如创建文件)终端1您可以执行cd .以下操作来更新此目录的索引节点号。

  • 物理解析目录

    如果目录名称是符号链接,则可以cd -P .物理解析链接组件。该功能直接来自 POSIX。是的,这需要-P选项,所以它不是裸露的cd .,但仍然......

答案2

还有另一个小影响,它设置了$OLDPWD

当您启动新终端直到cd到达某个地方时,该变量应该为空。

我能想到一种可能的用法,它可能不是很有用(而且有点天真),但它是:

cd -导航到$OLDPWD,因此您可以结合使用 来cd .在某些操作后前后导航到同一目录:

cd .; for i in {1..100}; do cd -;mkdir "d$i"; cd "d$i"; touch a; done

这不是我在脚本中做的事情,但可能直接在命令行或一些代码高尔夫中做...

答案3

虽然cd .本质上是一个空操作,但我可以看到一种pushd .可能相关的情况。

此外,在以交互方式、过程方式或从参数指定目标目录的脚本中,命令如下:

cd $destinationpath

可以评估为

cd .

变量应该这样分配吗?

答案4

如果您想使用 CMD 创建空文件,它也非常有用。只需使用这个技巧:

cd . > filename.ext

相关内容