Вычислить оставшиеся секунды до определенного времени с помощью bash?

Почти все доступные функции безопасного удаления были разработаны для вращения магнитных носителей, когда компьютер обычно может определять физическое расположение [1] блоков, используемых для файла, и записывать поверх тех же блоков. Чипы контроллера твердотельного хранилища абстрагируют физическое местоположение данных от системы и предпочитают их перемещать.

Ваш вопрос действительно зависит от того, кто собирает ваши данные. Если вас беспокоит случайная потеря или случайная кража, подойдет обычный формат. Если вас беспокоит, что вас нацелен высокомотивированный, технически компетентный пользователь, располагающий значительными ресурсами [2], просто сожгите диск и потратите 10 долларов на новый.

  1. Да, есть отображение логических блоков. Но логический блок A всегда будет соответствовать физическому блоку B.

  2. этот человек откроет диск, вытащит микросхему памяти из карты и напрямую прочитает флэш-память, минуя контроллер

1
07.12.2018, 08:26
2 ответа

Что-то вроде этого?

echo $(( $(date +%s -d "tomorrow 12:00") - $( date +%s ) ))
59856
10
27.01.2020, 23:31

Преобразование в строку времени может быть выполнено непосредственно в bash (менее чем за 24 часа):

 $ TZ=UTC0 printf '%(%H:%M:%S)T\n' 123
 00:02:03

Разницу во времени можно найти с помощью простой математики:

 $ now=$(printf '%(%s)T')
 $ future=$(date -d '+10 hours' '+%s')
 $ tdiff=$(( future - now ))
 $ TZ=UTC0 printf '%(%H:%M:%S)T\n' "$tdiff"
 10:00:00

Чтобы получить до 364 дней, используйте:

 now=$(printf '%(%s)T')
 future=$(date -d '+10 hour' '+%s')
 tdiff=$(( future - now ))
 j=$(( $(TZ=UTC0 printf '%(%j)T' "$tdiff") - 1 ))
 TZ=UTC0 printf '%s days %(%H:%M:%S)T\n' "$j" "$tdiff"

 0 days 10:00:00
0
27.01.2020, 23:31

Теги

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