시도했지만 ls /etc/[ac]*
다음으로 시작하는 디렉토리가 표시됩니다.ㅏ또는씨"로 시작하는 파일이 아닌 전체 내용을 포함합니다.ㅏ" 또는"씨".
답변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'