試しましたが、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'