findコマンドのオプションをある文字から別の文字に変換する

findコマンドのオプションをある文字から別の文字に変換する

/etc/etc.config で、 letter で始まるすべてのファイルから letter で始まるファイル、つまり a から to までのすべてのファイルを探します。.configakk

答え1

これらのファイル名は、ファイル名のワイルドカードパターン(「[a-k]*.configすべての文字で始まりファイル名のサフィックスで終わる」)と一致します。ak.config

にあるファイルにのみ興味がある場合は、/etc次のコマンドを使用してそのファイルを一覧表示します。

printf '%s\n' /etc/[a-k]*.config

このコマンドは、パターンに一致するディレクトリ、シンボリックリンクなどもリストします。リストを次に制限定期的なファイル(および一般ファイルへのシンボリックリンク)を指定してループを使用します。

for pathname in /etc/[a-k]*.config; do
    [ ! -f "$pathname" ] && continue
    printf '%s\n' "$pathname"
done

/etcサブディレクトリを表示して検索を通常のファイルに制限するには、次のようにしますfind

find /etc -type f -name '[a-k]*.config'

次に、()内とその下で、指定されたパターンと一致するファイル名を持つ/etc一般的なファイルを探します。-type f


上記のコマンドの結果は、改行で区切られたファイルパス名のリストです。ファイルをさらに処理する予定の場合は、このリストを中間パス名のリストとして使用しないでください。代わりに、上記のループを使用してファイルを個別に処理するか、そのfindオプション-execを使用して処理します。これは、出力に使用される区切り文字の改行文字がUnixファイル名でも有効な文字であるためです(もちろん使用されることはほとんどありませんが、まだそうです)。

関連情報