我有一个目录,其中包含编译器生成的文件。每次重建期间,此目录都会被清理,并且在构建过程结束后,ls
我会得到空输出。在我cd
退出目录并返回后,ls 可以正常工作。问题是:
- 还有其他更优雅的方法来刷新目录吗?
- 当文件被删除并重新创建时,实际上会发生什么?为什么我需要
cd
查看实际的目录内容?
答案1
您的脚本很可能删除的是目录,而不仅仅是其中的文件。因此,当您进入cd
该目录并删除该目录时,您实际上是ls
在删除一个实际上不存在的目录。
通过cd ..
并向cd (directory)
上移动并返回到(新创建的)目录,文件就如您所期望的那样。
最好的替代方法是,不要cd
进入和退出目录,而是将目录名称添加到命令中ls
,然后从父目录运行它。因此,ls YourSubdirectory
不要只ls
.
答案2
还有一种更短的方法:
cd .
答案3
它看起来很奇怪,但它很短并且刷新了目录:
cd `pwd`
请注意,这些是反引号,而不是密码周围的单引号
答案4
@Kent 所说的或:不要删除目录,而只删除其内容,这样您就可以留在目录中(没有“ cd .. && cd -
”)并且“ls”会执行您期望的操作。