如何在 BASH 中刷新目录?

如何在 BASH 中刷新目录?

我有一个目录,其中包含编译器生成的文件。每次重建期间,此目录都会被清理,并且在构建过程结束后,ls我会得到空输出。在我cd退出目录并返回后,ls 可以正常工作。问题是:

  1. 还有其他更优雅的方法来刷新目录吗?
  2. 当文件被删除并重新创建时,实际上会发生什么?为什么我需要cd查看实际的目录内容?

答案1

您的脚本很可能删除的是目录,而不仅仅是其中的文件。因此,当您进入cd该目录并删除该目录时,您实际上是ls在删除一个实际上不存在的目录。

通过cd ..并向cd (directory)上移动并返回到(新创建的)目录,文件就如您所期望的那样。

最好的替代方法是,不要cd进入和退出目录,而是将目录名称添加到命令中ls,然后从父目录运行它。因此,ls YourSubdirectory不要只ls.

答案2

还有一种更短的方法: cd .

答案3

它看起来很奇怪,但它很短并且刷新了目录:

cd `pwd`

请注意,这些是反引号,而不是密码周围的单引号

答案4

@Kent 所说的或:不要删除目录,而只删除其内容,这样您就可以留在目录中(没有“ cd .. && cd -”)并且“ls”会执行您期望的操作。

相关内容