File tree Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change 11#! /usr/bin/env bash
22set -eu -o pipefail
33
4- # Attempt to create files with the latest and earliest possible dates for ext4. Nanoseconds are
5- # special there, but not usually on other filesystems. In some touch implementations, the format
6- # may be rejected. So if a command fails, we try again with a more extreme date that is out of
7- # range, because some implementations will clip it to the edge of the range (but they may fail).
8- touch -d ' 2446-05-10 22:38:55.111111111' future || touch -d ' 2446-05-11 22:38:56' future
9- touch -d ' 1901-12-13 20:45:52.222222222' past || touch -d ' 1901-12-13 20:45:52' past
4+ # Attempt to create files with the latest and earliest possible 64-bit dates/times for ext4.
5+ # Although nanoseconds are stored in ext4, specifying fractions of a second does not seem to make
6+ # this work better, and omitting them allows the commands that attempt to set these dates to
7+ # succeed on more systems. While we use a portable format, if the system rejects a future date as
8+ # out of range with an error (and touch does not automatically retry with an allowed date) then it
9+ # can fail. In this case, we try again with a much more moderate date: the greatest value that can
10+ # in practice always parse to fit within a 32-bit signed time_t. This is subject to change to
11+ # support changed or new tests. It will also become less useful in the near future (after 2038).
12+ TZ=UTC touch -d ' 2446-05-10 22:38:55' future || TZ=UTC touch -d ' 2038-01-19 03:14:07' future
13+ TZ=UTC touch -d ' 1901-12-13 20:45:52' past
You can’t perform that action at this time.
0 commit comments