如何使用 bash 脚本移动一组以相同名称开头的文件?

如何使用 bash 脚本移动一组以相同名称开头的文件?

不确定此脚本中出现了什么问题:

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

如果我有三个 3 文件,则输出为${#files[@]}3。如果我有 2 个文件,则为 2。如果我有 1 个文件,则输出为 1...但如果我有零个文件,则输出也是 1...不知道为什么。mv如果没有找到文件,我想跳过...我应该如何修复此代码?谢谢

答案1

如果您使用-t的“目标”选项mv,则当您提供零个要移动的文件时,您会收到错误消息:

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

相关内容