Script Bash incapaz de mover arquivos

Script Bash incapaz de mover arquivos

Estou tentando escrever um script "zelador" que será executado como um crontrabalho 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 esta nova pasta.

Aqui está 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 para a pasta. Tenho feito isso apenas como um pequeno teste, e tanto o script quanto os arquivos foram criados pelo mesmo usuário. Se eu adicionar sudono início ele tenta mover os arquivos, mas em vez disso o que acontece é que ele apenas exclui os arquivos do diretório atual, mas não os coloca no diretório recém-criado.

Não estou tentando mover arquivos .zip. Apenas um exemplo.

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

Estou executando o Ubuntu 14.04 LTS.

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

Qualquer indicação na direção certa seria muito apreciada.

Editar

Agora funciona.

Atualizei a finddeclaração para:

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

Responder1

encontre arquivos no diretório atual e não nos subdiretórios:

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

excluir método dirs:

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

Observe que isso excluirá apenas o arquivo de hoje, enquanto você terá outro arquivo, recomendo o primeiro comando ou crie archive-dirs fora do diretório principal!

informação relacionada