Script Bash incapaz de mover arquivos

2

Estou tentando escrever um script "zelador" que será executado como um trabalho cron em um diretório específico. É suposto criar uma pasta de arquivo com a data de criação no nome e, em seguida, localizar e mover todos os arquivos de um determinado tipo para essa nova pasta.

Aqui está o meu código de teste:

#!/bin/bash

today=$(date +'%m:%d:%Y')
target="Archived-$today"
mkdir -p $target
find . -type f -name "*.zip" -exec mv -i {} /$target \;

Ele consegue criar a pasta corretamente, mas não consegue mover os arquivos que encontra na pasta. Eu tenho feito isso apenas como um pequeno teste, e tanto o script quanto os arquivos foram criados pelo mesmo usuário. Se eu adicionar sudo ao início, ele tenta mover os arquivos, mas o que acontece é que ele exclui apenas os arquivos do diretório atual, mas não os coloca no diretório recém-criado.

Eu não estou tentando mover arquivos .zip. Apenas um exemplo.

Eu tentei ter chmod 777 em arquivos e pastas. A mesma coisa acontece.

Estou executando o Ubuntu 14.04 LTS.

Se há uma maneira muito melhor de fazer isso, por favor me diga.

Qualquer ponteiro na direção correta seria muito apreciado.

Editar

Agora funciona.

Eu atualizei a instrução find para:

find . -maxdepth 1 -type f -name "*.zip" -exec mv -t "$target/" {} \;
    
por Evan 02.11.2015 / 14:19

1 resposta

3

encontrar arquivos no diretório atual não subdiretórios:

find . -maxdepth 1  -type f -name '*.zip'  -exec mv -t "$target/" {} \;

exclui o método dirs:

find . -type f -not -path "$target/*"  -name '*.zip'  -exec mv -t "$target/" {} \;

Note que isto excluirá apenas o arquivo de hoje enquanto você tiver outro arquivo, eu recomendo o primeiro comando, ou crie o arquivo-dirs fora do diretório principal!

    
por 02.11.2015 / 14:24