Я пытаюсь переименовать файлы журнала и сделать 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 -
' "{}" \;
Как я могу смолить переименованный файл с пересмотренной из вышеупомянутой команды или являюсь там другими путями (в оболочке удара)?спасибо
Если Вы хотите создать отдельное .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" \
' "{}" \;