Как передать tar.gz, файл после переименовывает использование xargs?

Я пытаюсь переименовать файлы журнала и сделать tar ими как 'tar.gz', я закончил ниже команды, но это не получает переименованное имя файла от STDIN (вывод команды mv), и это вызывает tar команда для создания пустых файлов,

find -type f -name "logs*" -exec bash -c ' \
     mv "$0" "$0_$(date -r "$0" +"%Y%m%d%H%M%S")"| \
     xargs tar -czf "$0_$(date -r "$0" +"%Y%m%d%H%M%S")".tar.gz --null -T - 
' "{}" \;

Как я могу смолить переименованный файл с пересмотренной из вышеупомянутой команды или являюсь там другими путями (в оболочке удара)?спасибо

2
задан 14 October 2016 в 23:49

1 ответ

Если Вы хотите создать отдельное .tar.gz файл для каждого из файлов журнала, которые находят, собирается, Вы не должны использовать xargs. Можно сохранить датированное добавленное название каждого файла к переменной (f в этом случае) и снова использовать новое имя в tar команда. Это также оставит Ваши переименованные файлы на месте.

find . -type f -iname "log*" -exec bash -c ' \
    f="${0}_$(date -r "$0" +"%Y%m%d%H%M%S")"; \
    mv "$0" "$f" && tar -czf "${f}.tar.gz" "$f" \
' "{}" \;
2
ответ дан 14 October 2016 в 23:49

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

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