/etcで「a」または「c」で始まるファイルを一覧表示する方法[閉じる]

/etcで「a」または「c」で始まるファイルを一覧表示する方法[閉じる]

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

ディレクトリ(ディレクトリの内容ではない)とファイルが必要な場合は、printfbultinを使用できます。

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'

関連情報