Предполагая, что информация в этом блоге верна, эта формула должна работать:
date_to_msidx(){ echo $(( $(TZ=UTC date -d "$1" +%s) / 86400 + 25569)); }
date_to_msidx 10/03/2018
43376
date_to_msidx 07/05/1998
35981
Это «Система дат 1900 года» Microsoft; дней с 1 января 1900 года, начиная с 1, но неправильно считая 1900 год високосным (на один день дольше, чем в действительности ).
Формула сначала использует date +%s
для преобразования во время Unix (~секунд с 01.01.1970 ), делит его на количество секунд в сутках (86400 ), затем добавляет количество дней с 01.01.1900 по 01.01.1970 (25569 ), предварительно рассчитанное с использованием вышеуказанной системы.
Предполагается дата GNU; адаптация его для других систем/языков оставлена читателю в качестве упражнения.
Опция монтирования метки работает только для блочных устройств, потому что она использует libblkid для поиска метки и ищет только блочные устройства. Что имеет смысл, представьте себе, что mount сканирует каждый отдельный файл, чтобы проверить, является ли он образом диска, отформатированным в ext4 с определенной меткой, что займет вечность:)
Вам нужно либо смонтировать его, используя имя файла mount VHD.img /engr
, либо создать петлевое устройство sudo losetup -f VHD.img
и смонтировать, после чего вы сможете смонтировать устройство /dev/loop0
, используя метку.