为什么以下不包含隐藏文件?
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 标志了。