Можно ли обновить метку времени создания файла файловой системы ext4 из Windows Powershell через общий сетевой ресурс?

Нет необходимости в каких-либо арифметических выражениях, просто используйте чистую дату:

date -d "1970-01-01 UTC $(date +%T)" +%s
0
29.06.2020, 10:49
2 ответа

Установка времени crtime (создания )для файлов в Linux — очень -не тривиальная задача и требует отладки файловой системы.

Я написал решение для этого ранее:Копирование или восстановление crtime для файлов/каталогов в файловой системе ext4fs

Я не уверен, как вам удалось смонтировать раздел ext4fs для чтения и записи под Windows, я полагаю, вы сделали это с помощью ext2fsd, и в этом случае, к сожалению, вам не повезло, поскольку приложение debugfsдоступно только для Linux. Возможно, вы захотите скомпилировать его для Windows, используя, например. mingw, но это очень не -тривиальная задача, потому что Windows имеет другой API для прямого доступа к блочным устройствам.

Редактировать:

on a network attached USB drive formatted as ext4.

Извините, в данном случае просто невозможно установить crtime для файлов.

1
18.03.2021, 23:23

Вы можете использовать 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);
}
...
0
12.04.2021, 01:38

Теги

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