El script Bash no puede mover archivos

El script Bash no puede mover archivos

Estoy intentando escribir un script de "conserje" que se ejecutará como un crontrabajo en un directorio específico. Se supone que debe crear una carpeta de archivo con la fecha de creación en el nombre y luego buscar y mover todos los archivos de un determinado tipo a esta nueva carpeta.

Aquí está mi código de prueba:

#!/bin/bash

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

Se las arregla para crear la carpeta correctamente, pero no puede mover los archivos que encuentra a la carpeta. Solo he estado haciendo esto como una pequeña prueba, y tanto el script como los archivos han sido creados por el mismo usuario. Si agrego sudoal principio intenta mover los archivos, pero lo que sucede es que solo elimina los archivos del directorio actual, pero no los coloca en el directorio recién creado.

No estoy intentando mover archivos .zip. Sólo un ejemplo.

Lo he intentado teniendo chmod 777tanto archivos como carpetas. Sucede lo mismo.

Estoy ejecutando ubuntu 14.04 LTS.

Si hay una manera mucho mejor de hacer esto, dígame.

Cualquier sugerencia en la dirección correcta sería muy apreciada.

Editar

Ahora funciona.

Actualicé la finddeclaración a:

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

Respuesta1

buscar archivos en el directorio actual, no en subdirectorios:

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

excluir método de directorios:

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

Tenga en cuenta que esto excluirá solo el archivo de hoy, mientras que tendrá otro archivo, recomiendo el primer comando o crear directorios de archivo fuera del directorio principal.

información relacionada