我尝试过ls /etc/[ac]*
,但它显示以以下开头的目录A或者C及其全部内容,而不是以“开头的文件A“ 或者 ”C”。
答案1
为了避免列出目录的内容,您可以:
ls -d /etc/[ac]*
这将列出目录名字以及以a
或开头的普通文件名c
。
为了完整起见,不涉及的解决方案find
可能是:
ls -ld /etc/[ac]* | grep ^- | tr -s ' ' | cut -d' ' -f9
答案2
递归地:
find /etc -type f -name '[ac]*'
如果您需要非递归,您可以便携式地执行此操作:
find /etc/. ! -name . -prune -type f -name '[ac]*'
或者这个,不可移植的(GNU 或最近的 BSD 发现):
find /etc -type f -maxdepth 1 -name '[ac]*'
如果您想不区分大小写地执行此操作,请使用-iname
而不是-name
.
答案3
如果您想要目录(不是目录的内容)和文件,您可以使用printf
bultin:
printf "%s\n" [ac]*
例子:
$ printf "%s\n" [te]*
examples.desktop
teamviewer_linux.deb
test.php
test.txt
答案4
你也可以尝试这个命令,
for file in /etc/[ac]*; do echo $file; done | xargs file | awk -v FS=" +" '$2~/directory/ {next;} {print $1}' | sed 's|\/etc\/||g;s/://g'