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

1

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/
    
por Sushma Sharma 07.04.2017 / 15:25

2 respostas

3
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.

    
por 07.04.2017 / 15:33
1

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.

    
por 07.04.2017 / 15:50

Tags