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移動するファイルがゼロの場合、次のエラーメッセージが表示されます。

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

おすすめ記事