Вы можете просто перенаправить вывод в файл и $(date...)
как часть имени файла.
напр.:
/path/to/backup_script.sh > /path/to/log/backup_$(date +%F).log
или то же самое в скрипте:
rsync -av... > /path/to/log/backup_$(date +%F).log
Зависит. Если вы всегда смотрите на точный вывод, как с xxd
выше, то новая строка может быть просто неприятностью. Но для общего использования учтите, что такие утилиты, как uname
, uptime
, date
и вообще любые подобные действительно печатают завершающую новую строку, так что это определенно обычай. Если программа, запущенная в командной строке, не печатает эту завершающую новую строку, многие оболочки будут печатать приглашение в той же строке, что выглядит некрасиво (ниже ). Также, например. подстановка команд удаляет завершающие символы новой строки только для того, чтобы компенсировать это.
bash$ date -u | tr -d '\n'
Sat 14 Nov 2020 03:48:19 PM UTCbash$
Некоторые случаи, когда предпочтительнее завершающий символ новой строки:
$PS1
, содержащие возврат каретки, )перезаписывают часть или всю последнюю строку вывода команды, если только она не заканчивается новой строкой. read
.