Как преобразовать строку даты в миллисекунды в оболочке Mac OS?

Насколько я знаю (Я не смотрел непосредственно на код Nemo, но я видел много других файловых менеджеров ), он использует вызов API UDisks DBus. Вы можете (возможно )повторить вызов, который Немо делает вручную с помощью команды:

udisksctl mount --block-device=/dev/whatever

В котором должен быть указан путь, по которому устройство было смонтировано (, в большинстве систем оно будет находиться под /run/media/$USER, с именем, соответствующим метке тома (или UUID тома, если метка отсутствует ). ].

Вы также можете передать этой команде аргумент --options=, чтобы указать пользовательские параметры монтирования.

Аналог unmount::

udisksctl unmount --block-device=/dev/whatever

Недостатком этого подхода является то, что он работает только внутри работающего сеанса DBus, что означает, что он не будет работать во время запуска системы.

Если под «при запуске» вы подразумеваете «когда я вхожу в систему», то вы можете использовать модуль pam_mountPAM, который позволит вам также монтировать файловую систему при входе в консоль и дополнительно размонтировать это правильно, когда вы выходите из системы. Документацию для этого можно найти здесь . На самом деле это то, что используется большинством дистрибутивов для обработки зашифрованных домашних каталогов (, по крайней мере, традиционно, большинство из них медленно мигрируют на VFS Crypto API, но это скорее -не по теме ).

Если вместо этого вы имеете в виду «когда система загружается» под «при запуске», то на самом деле лучше не пытаться воспроизвести точные средства, которые Nemo использует для монтирования файловой системы. Гораздо лучший подход — самостоятельно настроить параметры монтирования, чтобы он вел себя именно так, как вы хотите.

В комментариях вы упомянули, что пытаетесь смонтировать том NTFS. Ваша основная строка /etc/fstabдля этого должна выглядеть так (на основе информации из комментариев):

/dev/sda3     /mnt/user/Storage    ntfs-3g    rw,nosuid,nodev,allow_other    0 0

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

  • windows_names:Это предотвратит создание файлов, к которым вы не можете получить доступ из WIndows из-за ограничений на имена. Как правило, вы вряд ли случайно создадите такие файлы (большинство людей не используют запрещенные символы, и зарезервированные имена также не используются в большинстве мест ), но на всякий случай это обеспечивает хорошую подстраховку.
  • hide_dot_files:Это автоматически помечает файлы с именами файлов, начинающимися с ., как скрытые, улучшая согласованность между Windows и Linux.
  • hide_hidden_files:Это исключит файлы со скрытым атрибутом из списка каталогов (даже сls -a). Аналогичный аргумент для вышеупомянутого варианта, хотя я сам не люблю его.
  • streams_interface=xattr:Это предоставляет альтернативные потоки данных NTFS в качестве расширенных атрибутов, позволяя большинству инструментов резервного копирования правильно сохранять и восстанавливать их.
  • big_writes:Это значительно повышает производительность записи для больших операций записи, но не влияет на то, как данные выглядят в разделе.

Кроме того, вы можете захотеть настроить файл сопоставления пользователей, если вы регулярно используете этот том как в Windows, так и в Linux. Это позволит разрешениям, установленным в одной ОС, корректно вести себя в другой. На странице руководства NTFS -3G (проверьте здесь)имеется достаточно хорошая документация о том, как это сделать, в разделе «Сопоставление пользователей».

0
17.01.2020, 17:03
2 ответа

Вы можете установить coreutils, который содержит дату GNU:

brew install coreutils

, затем

$ gdate -d "2020-01-17T06:41:48.000Z" +%s%3N
1579243308000
1
28.01.2020, 02:38

С датой BSD, поставляемой в OSX, вы можете

timestring="2020-01-17T06:41:48.456Z"
/bin/date -jf "%Y-%m-%dT%H:%M:%S" "${timestring%.???Z}" "+%s${timestring: -4:3}"
1579261308456
0
28.01.2020, 02:38

Теги

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