saída obrigatória não alcançada pelo script bash

2

Sou novo no bash script e quero criar um script bash que mova alguns arquivos antigos entre a origem e o destino, conforme os dias definidos no script.

#!/bin/bash

echo "Enter Your Source Directory"
read soure

echo "Enter Your Destination Directory"
read destination 

echo "Enter Days"
read days

find $soure -mtime -$days -exec mv {} $destination \;
echo "Files which were $days Days old moved from $soure to $destination"

meu script é executado sem erro, mas não estou obtendo a saída necessária. Quando eu corro para mover arquivos de 30 dias da pasta / home / ketan / maxi para / home / ketan / google, ele move toda a pasta maxi para o google ao invés de arquivos.

Eu preciso mover arquivos que atendam aos critérios de idade de acordo com o script. O que há de errado com esse script?

    
por Ketan Patel 20.12.2012 / 14:11

1 resposta

5

A expressão find também corresponderá ao diretório pai. Você precisa dizer para operar somente em arquivos regulares, se você quiser mover apenas os arquivos. Além disso, você deve citar suas expansões.

find "$soure" -type f -mtime "-$days" -exec mv {} "$destination" \;
    
por 20.12.2012 / 14:14