basename avec des espaces dans un script bash?

Je travaille sur un script bash pour créer un nouveau dossier dans /tmp/utilisant le nom d'un fichier, puis copiez le fichier dans le dossier.

#!/bin/bash

MYBASENAME="`basename $1`"
mkdir "/tmp/$MYBASENAME"

for ARG in "$@"
    do
        mv "$ARG" "/tmp/$MYBASENAME"

done

Comportement:

Quand je tape dans mymove "/home/me/downloads/my new file.zip" il montre ceci:

mkdir /tmp/my
new
file.zip
mv: rename /home/me/downloads/my new file.zip to /tmp/my\nnew\nfile.zip:

J'ai beaucoup de guillemets autour de tout, donc je ne comprends pas pourquoi cela ne fonctionne pas comme prévu.

Aussi, j'ai la forme de boucle, au cas où il y a plusieurs fichiers. Je les veux toutes pour être copié dans le même dossier, basé sur le premier argument est basename.

source d'informationauteur cwd