Файловая система AVFS представляет представление файловой системы где каждый архивный файл /path/to/foo.zip
доступно как каталог ~/.avfs/path/to/foo.zip#
. Это - файловая система FUSE, которую можно установить на Солярисе. AVFS обеспечивает доступ только для чтения к наиболее распространенным форматам архивного файла.
mountavfs
for z in ~/.avfs$PWD/*.zip; do
find "$z#" -exec grep ORA-1680 {} +
done
fusermount -u ~/.avfs # optional
Ну, можно сделать что-то подлое как:
$ echo "`date +%s` - (1125 * 24 * 60 *60)" |bc 1194478815 $ date -r 1194478689 Wed, 07 Nov 2007 18:38:09 -0500
Протестированный на OpenBSD (определенно не основанная на гну дата), и, кажется, работает.
Разрушение его на шагах:
$ date +%s 1291679934
$ echo "1125 * 24 * 60 *60" | bc 97200000
вычтите один из другого (1291679934 - 97200000) = 1194478815
используйте новый unixtime (1194478815) для печати симпатичной даты
$ date -r 1194478689 Wed, 07 Nov 2007 18:38:09 -0500
Как альтернатива, на solaris можно сделать это для печати date*:
/bin/echo "0t1194478815>Y\n<Y=Y" |adb
* ссылаемый из http://www.sun.com/bigadmin/shellme/
Кроме того, альтернатива на Солярисе для получения текущей метки времени от команды даты **:
/usr/bin/truss /usr/bin/date 2>&1 | nawk -F= '/^time()/ {gsub(/ /,"",$2);print $2}'
** ссылаемый из http://www.commandlinefu.com/commands/view/7647/unix-timestamp-solaris
У меня была аналогичная проблема, я нашел пакет dateutils для OpenBSD 6.4. Для меня это был простой pkg _add dateutils.
#!/bin/ksh
# Using dateutils dadd (get current date) -1month -f (format to strftime)
# Set Year in YYYY formant y is YY format
lastMonth=$(dadd date -1mo -f "%Y.%m")
echo $lastMonth
mkdir /home/$usr/History/$lastMonth
Мой вывод здесь
#2018.11
ОБНОВЛЕНИЕ 1
Я запускаю эту команду 2018.12.10
HostNameHere# dadd date -1125d -f "%Y.%m"
Результат
2015.11
Он поддерживает любое сложение или вычитание времени, которое я могу сказать. Вот команды, помогающие распечатать.#dadd -h
(Это не вся распечатка.Там больше информации об опциях.
Usage: dadd [OPTION]... [DATE/TIME] [DURATION]
Add DURATION to DATE/TIME and print the result.
If DATE/TIME is omitted but DURATION is given, read a list of DATE/TIMEs from
stdin. If DURATION is omitted but DATE/TIME is given, read a list of DURATIONs from
stdin.
Durations are specified as nY, nMO, nW, or nD for years, months, weeks, or days
respectively, or nH, nM, nS for hours, minutes, and seconds, where N is a
(possibly negative) number. The unit symbols can be written lower-case as well
(y, mo, w, d, h, m, s) and the unit symbol `d' can be omitted.
Note that duration addition is not commutative!
2000-03-30 +1mo +1d -> 2000-05-01
2000-03-30 +1d +1mo -> 2000-04-30
Здесь — команды.
Здесь — параметры форматирования.
%s
иdate -r
BSDisms (от еще начального этапа, таким образом, они находятся на всех платформах BSD). Не ожидайте видеть их на платформах System V (например, Солярис не имеет ни одного). А-ч – Gilles 'SO- stop being evil' 07.12.2010, 02:09