このスクリプトで何が起こっているのかわかりません。
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
移動するファイルがゼロの場合、次のエラーメッセージが表示されます。
$ shopt -s nullglob
$ mv -t subdir bbbbbbb*
mv: missing file operand
Try 'mv --help' for more information.