이 스크립트에서 무슨 일이 일어나고 있는지 잘 모르겠습니다.
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.