bash 스크립트를 사용하여 동일한 이름으로 시작하는 파일 그룹을 이동하는 방법은 무엇입니까? [복사]

bash 스크립트를 사용하여 동일한 이름으로 시작하는 파일 그룹을 이동하는 방법은 무엇입니까? [복사]

이 스크립트에서 무슨 일이 일어나고 있는지 잘 모르겠습니다.

files=( /home/username/file* )
#echo ${#files[@]}
if (( ${#files[@]} )); then
    mv /home/username/file* /home/username/Documents/
fi

3개의 파일이 3개 있으면 출력은 ${#files[@]}3입니다. 파일이 2개 있으면 2개입니다. 파일이 1개 있으면 출력은 1입니다. 하지만 파일이 없으면 출력도 1이 됩니다. 이유는 모르겠습니다. mv파일이 없으면 건너뛰고 싶은데... 이 코드는 어떻게 수정해야 하나요? 감사해요

답변1

-t"target" 옵션을 사용하는 경우 mv이동할 파일이 0개 있으면 다음과 같은 오류 메시지가 표시됩니다.

$ shopt -s nullglob
$ mv -t subdir bbbbbbb*
mv: missing file operand
Try 'mv --help' for more information.

관련 정보