Bash 検索ディレクトリ名

Bash 検索ディレクトリ名

数値を受け取り、変数に移動するスクリプトがあります。$n。質問名にこの文字/番号を含むディレクトリをどのように見つけることができますか?

答え1

1レベルのディレクトリだけを見たいので、シェルグロブを使うことができます。*$n*

ls ./*"$n"*

ただし、これはファイルとディレクトリを区別しません。したがって、ループを使用して各タイプを確認できます

for f in *"$n"*
do
    if [ -d "$f" ]
    then
        printf "%s\n" "$f"
    fi
done

またはを使用してくださいfind。ただし、特殊文字を$nパターン一致の一部として解釈することに注意してください。

find . -maxdepth 1 -type d -name "*$n*"

この特別なケースでは、このバリアントを使用することもできます。

find ./*"$n"* -maxdepth 0 -type d

関連情報