Crie um diretório com a data de hoje e mova os arquivos para ele

Crie um diretório com a data de hoje e mova os arquivos para ele

Estou escrevendo um script para criar um diretório nomeado com a data de hoje (aaaa_mm_dd) e, em seguida, mover 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 fiz também seleciona o diretório.

now=$(date '+%Y_%m_%d')
mkdir $now
mv *$now $now/

Responder1

mv *?"$now" "$now/."

garantirá que o diretório recém-criado não seja selecionado para movimentação, exigindo que haja pelo menos um caractere ( ?) na frente do carimbo de data/hora.

Responder2

O findcomando pode filtrar tipos de arquivos, bem como nomes de arquivos.
Então acho que isso fará o que você deseja:

now=$(date '+%Y_%m_%d')
find . -name "*$now" -type f -print0 | xargs -0 mv -t $now/

embora você possa precisar pensar se há alguma estranheza em seus nomes de arquivos (como outros diretórios que contêm a sequência de datas) antes de executar isso em um lote grande.

informação relacionada