如何使用 ls 来查找隐藏文件?

如何使用 ls 来查找隐藏文件?

为什么以下不包含隐藏文件?

ls -a *vim* 

将会返回

 ls: cannot access '*vim*': No such file or directory

ls -a | grep vim 
.vim
.vimrc

答案1

是 shell 找到与模式匹配的文件名,而不是ls它本身。因此,您必须让 shell 包含以点开头的名称,可以在命令shopt -s dotglob之前使用ls,或者在模式中专门包含点:.*vim*。但请注意,如果模式与目录匹配,ls则会列出其内容(这才是-a重要的地方,因为现在它ls列出了文件)。为了防止这种情况,请使用ls -d.

答案2

如果您明确查找隐藏文件,请使用以点开头的模式,

ls .*vim*

那么就不需要 -a 标志了。

相关内容