Выходной журнал для bash

Итак, я выполняю сценарий перемещения для некоторых файлов старше 1 месяца в неделю:

#!/bin/bash echo "Moving Recordings Older than 30 days!"; /bin/find /var/services/homes/recordings/recording_list/ -type f -mtime +30 \ -exec mv '{}' /var/services/homes/recordings/Old/recording_list/ \;

Я хочу, чтобы скрипт создавал файл с отметкой и записывал, сколько файлов было

Спасибо,

1
задан 20 January 2018 в 02:09

2 ответа

Чтобы получить файл журнала, добавьте параметр -v в mv и заберите вывод:

find srcdir -type f -mtime +30 -exec mv -v {} destdir \; >output.log

Если вы хотите, чтобы файл журнала содержал дату, и у вас есть последняя версия bash (> = 4.2-alpha), используйте:

find srcdir -type f -mtime +30 -exec mv -v {} destdir \; >"$(printf 'file%(%F)T.log' -1)"

Если у вас нет недавнего bash, вместо этого используйте date.

Быстрая версия

Для большей скорости используйте -exec ... +:

find srcdir -type f -mtime +30 -exec mv -vt destdir {} + >|"$(printf 'file%(%F)T.log' -1)"

Вместо вызова нового процесса mv для каждого найденного файла, это перемещает много файлов с одним экземпляром mv.

1
ответ дан 17 July 2018 в 22:37

Чтобы получить файл журнала, добавьте параметр -v в mv и заберите вывод:

find srcdir -type f -mtime +30 -exec mv -v {} destdir \; >output.log

Если вы хотите, чтобы файл журнала содержал дату, и у вас есть последняя версия bash (> = 4.2-alpha), используйте:

find srcdir -type f -mtime +30 -exec mv -v {} destdir \; >"$(printf 'file%(%F)T.log' -1)"

Если у вас нет недавнего bash, вместо этого используйте date.

Быстрая версия

Для большей скорости используйте -exec ... +:

find srcdir -type f -mtime +30 -exec mv -vt destdir {} + >|"$(printf 'file%(%F)T.log' -1)"

Вместо вызова нового процесса mv для каждого найденного файла, это перемещает много файлов с одним экземпляром mv.

1
ответ дан 24 July 2018 в 13:14

Другие вопросы по тегам:

Похожие вопросы: