mv *?"$now" "$now/."
garantirá que o diretório recém-criado não esteja selecionado para movimentação, exigindo que haja pelo menos um caractere ( ?
) na frente do timestamp.
Estou escrevendo um script para criar um diretório chamado com a data de hoje (yyyy_mm_dd) e mova todos os arquivos que terminam na data de hoje para esse diretório. Existe uma maneira melhor de mover os arquivos para o diretório, já que o que eu fiz também seleciona o diretório.
now=$(date '+%Y_%m_%d')
mkdir $now
mv *$now $now/
O comando find
pode filtrar tipos de arquivos e nomes de arquivos.
Então eu acho que isso vai fazer o que você quer:
now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/
embora seja necessário pensar se há alguma esquisitice em seus nomes de arquivos (como outros diretórios que contenham a string de data) antes de executá-lo em um lote grande.