bash - アスタリスクの移動に問題があります。

bash - アスタリスクの移動に問題があります。

特定の拡張子または属性を持つファイルを別のプログラムに移動するスクリプトを作成しようとしています。すべてが正常でスクリプトは機能しますが、mvステートメントファイルを移動し続けたいと思います。たとえば、次はコードの一部です。

dirs=($(find "$dir" -type d))
for d in "${dirs[@]}"; do
for file in "$d"/*; do
    if [ -f "$file" ] && [ -x "$file" ]; then
        exefiles+=( "$file" )
        mv "$file" $bindir
    fi
done
    
for i in "${exefiles[@]}"; do
    echo "$i moved to $bindir" >> /home/$USER/$logname
done

for file in "$d"/lib*; do
    libfiles+=( "$file" )
    mv "$file" $libdir
done

for i in "${libfiles[@]}"; do
    echo "$i moved to $libdir" >> /home/$USER/$logname
done

for file in "$d"/*.c "$d"/*.cc "$d"/*.cpp "$d"/*.cxx; do
    srcfiles+=( "$file" )
    mv "$file" $srcdir
done
for i in "${srcfiles[@]}"; do
    echo "$i moved to $srcdir" >> /home/$USER/$logname
done

for file in "$d"/*.h "$d"/*.hxx; do
    incfiles+=( "$file" )
    mv "$file" $incdir
done

for i in "${incfiles[@]}"; do
    echo "$i moved to $incdir" >> /home/$USER/$logname
done
unset exefiles
unset libfiles
unset srcfiles
unset incfiles
cd "$d"
done

mvなど自体を移動してみると、"$d"/*移動できないという内容が端末とログファイルに印刷されます。予防する方法はないでしょうか?私が何か間違っているのでしょうか?

関連情報