如何从 /etc 列出以“a”或“c”开头的文件。

3df*_*3df 13 ls wildcards

我试过了,ls /etc/[ac]*但它显示了以ac开头的目录及其全部内容,而不是以“ a ”或“ c ”开头的文件。

Gre*_*ill 26

为避免列出目录的内容,您可以:

ls -d /etc/[ac]*
Run Code Online (Sandbox Code Playgroud)

这将列出目录名称以及以a或开头的普通文件名c

为了完整性,不涉及的解决方案find可能是:

ls -ld /etc/[ac]* | grep ^- | tr -s ' ' | cut -d' ' -f9
Run Code Online (Sandbox Code Playgroud)

  • 他确实有道理。虽然`/etc` 中的名称很可能是合理的,一个简单的空格会破坏`ls` 方法,因为字段编号会改变。不过对于`ls -ld` +1。 (3认同)

Chr*_*own 8

递归地:

find /etc -type f -name '[ac]*'
Run Code Online (Sandbox Code Playgroud)

如果您需要非递归,则可以移植地执行此操作:

find /etc/. ! -name . -prune -type f -name '[ac]*'
Run Code Online (Sandbox Code Playgroud)

或者这个,不可移植的(GNU 或最近的 BSD 发现):

find /etc -type f -maxdepth 1 -name '[ac]*'
Run Code Online (Sandbox Code Playgroud)

如果您想不区分大小写,请使用-iname代替-name