不确定此脚本中出现了什么问题:
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.