Нет необходимости в каких-либо арифметических выражениях, просто используйте чистую дату:
date -d "1970-01-01 UTC $(date +%T)" +%s
Установка времени crtime (создания )для файлов в Linux — очень -не тривиальная задача и требует отладки файловой системы.
Я написал решение для этого ранее:Копирование или восстановление crtime для файлов/каталогов в файловой системе ext4fs
Я не уверен, как вам удалось смонтировать раздел ext4fs для чтения и записи под Windows, я полагаю, вы сделали это с помощью ext2fsd, и в этом случае, к сожалению, вам не повезло, поскольку приложение debugfs
доступно только для Linux. Возможно, вы захотите скомпилировать его для Windows, используя, например. mingw, но это очень не -тривиальная задача, потому что Windows имеет другой API для прямого доступа к блочным устройствам.
Редактировать:
on a network attached USB drive formatted as ext4.
Извините, в данном случае просто невозможно установить crtime для файлов.
Вы можете использовать PowerScript для вызова библиотеки SharpExt4.Net для изменения временной метки файла Linux.
Используйте код.Net (C #)и библиотеки DLL в Powershell
C #Пример кода:
...
//Open a Linux ext4 disk assume your SD card/USB is physical disk 1
var disk = ExtDisk.Open(1);
//Get the file system
var fs = ExtFileSystem.Open(disk.Parititions[0]);
//Check file exists
if(fs.FileExists("/etc/hosts"))
{
fs.SetCreationTime("/etc/hosts", DateTime,Now);
}
...