Piping Localizar e Mover Saída de Comando para um arquivo

0

Estou executando o seguinte comando e a saída não está indo para o move.log file. Estou faltando alguma coisa no comando?

find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ >> /db_backups/move.log 2>&1 \;
    
por Ohly 30.01.2018 / 16:07

1 resposta

1

Sua linha de comando find :

find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ >> /db_backups/move.log 2>&1 \;

é o mesmo que

find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ \; >>/db_backups/move.log 2>&1 

O comando find , quando usado dessa maneira, não produzirá nenhuma saída e, portanto, nenhum novo dado será gravado no arquivo move.log .

Se você quiser armazenar os nomes dos arquivos que foram movidos, adicione -print antes do -exec :

find /db_backups/30_plus_days -type f -mtime +90 -print -exec mv {} /db_backups/90_plus_days/ \; >>/db_backups/move.log 2>&1

ou, com melhores quebras de linha (apenas para legibilidade):

find /db_backups/30_plus_days \
    -type f -mtime +90 -print \
    -exec mv {} /db_backups/90_plus_days/ 2>&1 \; \
    >>/db_backups/move.log
    
por 30.01.2018 / 16:41

Tags