![bash - 별표를 이동하는 데 문제가 있습니다.](https://linux55.com/image/183074/bash%20-%20%EB%B3%84%ED%91%9C%EB%A5%BC%20%EC%9D%B4%EB%8F%99%ED%95%98%EB%8A%94%20%EB%8D%B0%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
특정 확장자나 속성을 가진 파일을 다른 프로그램으로 이동하는 스크립트를 만들려고 합니다. 모든 것이 정상이고 스크립트는 작동하지만 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"/*
이동할 수 없다는 내용이 터미널과 로그 파일에 인쇄됩니다. 예방할 수 있는 방법은 없을까요? 제가 뭔가 잘못하고 있는 걸까요?