Как правильно подделать время?

Одним из соглашений является использование " _" для замены пробелов в качестве разделителей между словами. Для замены пробелов можно использовать и другие символы, но существуют несколько более сильные обычные способы использования «-» и «.» в путях, поэтому обычно предпочтительнее "_".

Пробелы допустимы в именах путей, но обычно их избегают, потому что они требуют заключения пути в кавычки ("foo bar" )или экранирования пробелов (foo\ bar ). Правильно написанный сценарий оболочки будет заключать в кавычки переменные, которые могут содержать пробелы, в частности имена путей, но несоблюдение этого требования является распространенным упущением, и при выполнении команды one -off, введенной в командной строке, требуется много лишнего ввода.

Использование " -" для разделения групп чисел, таких как метки времени или серийные номера, является соглашением, обычно используемым вне контекста файловых систем. С использованием "." для разделения «расширений файлов», указывающих тип файла, очень распространен, и от него зависят некоторые важные инструменты. Например, система управления пакетами в Red Hat Enterprise Linux и ее производных RPM ожидает, что файлы пакетов заканчиваются на «.rpm». Традиционный архив представляет собой файл tar (".tar" ), сжатый gzip (".gz" ),и так заканчивается на ".tar.gz".

Таким образом, складывая их вместе, вы часто получаете имена файлов, похожие на «home _backup _2017 -07 -01.tar.gz»

3
08.08.2019, 05:07
1 ответ

Это не объясняет поведение, которое вы видите, но должно ответить на вопрос в заголовке.

Вместо изменения системного времени можно использовать такой инструмент, какfaketimeи переменную окружения TZ:

$ date; faketime -f -15d date; TZ=America/New_York faketime -f -15d date
Thu  8 Aug 10:21:13 CEST 2019
Wed 24 Jul 10:21:13 CEST 2019
Wed 24 Jul 04:21:13 EDT 2019

Это позволит вам запускать вашу программу с собственным часовым поясом, датой и временем, не затрагивая остальную часть системы.

Обратите внимание, что, поскольку он использует $LD_PRELOADхак для внедрения кода в приложения, он не будет работать для статически связанных исполняемых файлов или исполняемых файлов setuid/setgid.

7
27.01.2020, 21:15

Теги

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