Я не полностью знаю MS One Note, но, возможно, вы могли бы попробовать zim.
Zim - графический текстовый редактор, используемый для поддержки коллекции страниц вики. Каждая страница может содержать ссылки на другие страницы, простое форматирование и изображения. Страницы хранятся в структуре папок, как в outliner, и могут иметь вложения. Создание новой страницы так же просто, как привязка к несуществующей странице. Все данные хранятся в текстовых файлах с форматированием wiki. Различные плагины предоставляют дополнительные функции, такие как менеджер списка задач, редактор уравнений, значок в трее и поддержка контроля версий. На веб-странице Zim.Я использую его как хранилище информации, которую мне нужно использовать ежедневно или для некоторого кода, который мне нужен, если что-то пойдет не так.
Поскольку он сохраняет информацию в TXT-файлах, я помещаю папку примечаний в свой OwnCloud. Поэтому я могу прочитать его, даже если у меня нет Zim, или я на другом ПК. Dropbox или другое облачное программное обеспечение, которое помещает папку синхронизации в вашу файловую систему.
Если у вас более одной машины, вы можете использовать одни и те же заметки во всех из них, выполнив вышеуказанное.
Похоже на это (немного лучше в Ubuntu с маленькими значками):
Для получения дополнительной информации , взгляните на скринкаст и скриншоты.
Вы найдете его в скринкаст и скриншоты , на странице загрузки или добавив PPA (из Launchpad):
sudo add-apt-repository ppa:jaap.karssenberg/zim
sudo apt-get update
sudo apt-get install zim
Редактировать:
Также интересна страница для загрузки в Github.
Один лайнер:
0 0 * * * cp /path/to/* /path/to/destination.$(( $(date -d $(date +%F) +%s)/(3600*24) % 2))
Объяснение:
$(( $(date -d 0:00 +%s)/(3600*24) % 2))
вернет метку времени в секундах (+%s) сегодня в 0:00 (-d 0:00). Разделенный на (3600*24) будет возвращать число дней из unix-эпохи. %2 вернет 0 или 1 для нечетных или даже дней с момента запуска unix-эпохи. Один лайнер:
0 0 * * * cp /path/to/* /path/to/destination.$(( $(date -d $(date +%F) +%s)/(3600*24) % 2))
Объяснение:
$(( $(date -d 0:00 +%s)/(3600*24) % 2))
вернет метку времени в секундах (+%s) сегодня в 0:00 (-d 0:00). Разделенный на (3600*24) будет возвращать число дней из unix-эпохи. %2 вернет 0 или 1 для нечетных или даже дней с момента запуска unix-эпохи. Один лайнер:
0 0 * * * cp /path/to/* /path/to/destination.$(( $(date -d $(date +%F) +%s)/(3600*24) % 2))
Объяснение:
$(( $(date -d 0:00 +%s)/(3600*24) % 2))
вернет метку времени в секундах (+%s) сегодня в 0:00 (-d 0:00). Разделенный на (3600*24) будет возвращать число дней из unix-эпохи. %2 вернет 0 или 1 для нечетных или даже дней с момента запуска unix-эпохи. Если было бы нормально писать на ~/destination.0 в четные даты и ~/destination.1 в нечетные даты, следующая строка crontab должна работать. Он начинает резервное копирование в полночь (0 мин, 0 час, два первых элемента на линии),
0 0 * * * echo cd dir2copy;dtmp=$(( $(/bin/date '+%d') % 2 ));echo /bin/cp * ~/destination."$dtmp"
См. Эту ссылку для объяснения синтаксиса crontab,
Планирование задач с заданиями Cron
Проверьте командную часть строки в окне терминала,
echo cd dir2copy;dtmp=$(( $(/bin/date '+%d') % 2 ));echo /bin/cp * ~/destination."$dtmp"
, и когда она будет работать, вы можете заменить cd dir2copy на cd to-the-actual-directory-you-want-to-copy, замените ~ на /home/your-home-directory и удалите два слова echo, чтобы сделать это реальным заданием.
Протестируйте его снова, а затем измените линию crontab. (Среда в crontab такова, что вам могут потребоваться явные полные пути к программам, каталогам и файлам данных.)
/bin/date '+%d' находит день месяца, а % - операция останова, которая создает 0 или 1, который добавляется в конце командной строки.
Вы можете предпочесть /bin/date '+%j', который находит день года, например сегодня , 1 декабря, является днем #335.
Я согласен с ответами «запустите cronjob daily, switch directories in the script», но я бы сделал это следующим образом:
#!/bin/bash
# use hidden link
last=$HOME/.last_destination
#
declare -a dirs
dirs[0]="destination.0"
dirs[1]="destination.1"
#
target=
#
# If $last is a link, it points to the last used directory. Otherwise,
# initialize it and use $HOME/destination.0
if [[ -L "$last" ]] ; then
# get the name of the linked dir
old="$(stat --printf="%N" "$last" | cut -d\' -f4)"
if [[ "$old" == "${dirs[0]}" ]] ; then
target="${dirs[1]}"
else
target="${dirs[0]}"
fi
else
# "$last" is not a link - first time initialization
target="${dirs[0]}"
fi
# now, with $target set, point the $last link at $target, for next time
rm "$last"
ln -s "$target" "$last"
#
# debugging printouts - remove in real life
echo "$target"
ls -l "$last"
Запускайте этот скрипт ежедневно из cron:
#! /bin/sh set -e cp * ~/destination.0 mv ~/destination.0 ~/destination.last mv ~/destination.1 ~/destination.0 mv ~/destination.last ~/destination.0Запускайте этот скрипт ежедневно из cron:
#! /bin/sh set -e cp * ~/destination.0 mv ~/destination.0 ~/destination.last mv ~/destination.1 ~/destination.0 mv ~/destination.last ~/destination.0Если было бы нормально писать на ~/destination.0 в четные даты и ~/destination.1 в нечетные даты, следующая строка crontab должна работать. Он начинает резервное копирование в полночь (0 мин, 0 час, два первых элемента на линии),
0 0 * * * echo cd dir2copy;dtmp=$(( $(/bin/date '+%d') % 2 ));echo /bin/cp * ~/destination."$dtmp"
См. Эту ссылку для объяснения синтаксиса crontab,
Планирование задач с заданиями Cron
Проверьте командную часть строки в окне терминала,
echo cd dir2copy;dtmp=$(( $(/bin/date '+%d') % 2 ));echo /bin/cp * ~/destination."$dtmp"
, и когда она будет работать, вы можете заменить cd dir2copy на cd to-the-actual-directory-you-want-to-copy, замените ~ на /home/your-home-directory и удалите два слова echo, чтобы сделать это реальным заданием.
Протестируйте его снова, а затем измените линию crontab. (Среда в crontab такова, что вам могут потребоваться явные полные пути к программам, каталогам и файлам данных.)
/bin/date '+%d' находит день месяца, а % - операция останова, которая создает 0 или 1, который добавляется в конце командной строки.
Вы можете предпочесть /bin/date '+%j', который находит день года, например сегодня , 1 декабря, является днем #335.
Я согласен с ответами «запустите cronjob daily, switch directories in the script», но я бы сделал это следующим образом:
#!/bin/bash
# use hidden link
last=$HOME/.last_destination
#
declare -a dirs
dirs[0]="destination.0"
dirs[1]="destination.1"
#
target=
#
# If $last is a link, it points to the last used directory. Otherwise,
# initialize it and use $HOME/destination.0
if [[ -L "$last" ]] ; then
# get the name of the linked dir
old="$(stat --printf="%N" "$last" | cut -d\' -f4)"
if [[ "$old" == "${dirs[0]}" ]] ; then
target="${dirs[1]}"
else
target="${dirs[0]}"
fi
else
# "$last" is not a link - first time initialization
target="${dirs[0]}"
fi
# now, with $target set, point the $last link at $target, for next time
rm "$last"
ln -s "$target" "$last"
#
# debugging printouts - remove in real life
echo "$target"
ls -l "$last"
Запускайте этот скрипт ежедневно из cron:
#! /bin/sh set -e cp * ~/destination.0 mv ~/destination.0 ~/destination.last mv ~/destination.1 ~/destination.0 mv ~/destination.last ~/destination.0Если было бы нормально писать на ~/destination.0 в четные даты и ~/destination.1 в нечетные даты, следующая строка crontab должна работать. Он начинает резервное копирование в полночь (0 мин, 0 час, два первых элемента на линии),
0 0 * * * echo cd dir2copy;dtmp=$(( $(/bin/date '+%d') % 2 ));echo /bin/cp * ~/destination."$dtmp"
См. Эту ссылку для объяснения синтаксиса crontab,
Планирование задач с заданиями Cron
Проверьте командную часть строки в окне терминала,
echo cd dir2copy;dtmp=$(( $(/bin/date '+%d') % 2 ));echo /bin/cp * ~/destination."$dtmp"
, и когда она будет работать, вы можете заменить cd dir2copy на cd to-the-actual-directory-you-want-to-copy, замените ~ на /home/your-home-directory и удалите два слова echo, чтобы сделать это реальным заданием.
Протестируйте его снова, а затем измените линию crontab. (Среда в crontab такова, что вам могут потребоваться явные полные пути к программам, каталогам и файлам данных.)
/bin/date '+%d' находит день месяца, а % - операция останова, которая создает 0 или 1, который добавляется в конце командной строки.
Вы можете предпочесть /bin/date '+%j', который находит день года, например сегодня , 1 декабря, является днем #335.
Я согласен с ответами «запустите cronjob daily, switch directories in the script», но я бы сделал это следующим образом:
#!/bin/bash
# use hidden link
last=$HOME/.last_destination
#
declare -a dirs
dirs[0]="destination.0"
dirs[1]="destination.1"
#
target=
#
# If $last is a link, it points to the last used directory. Otherwise,
# initialize it and use $HOME/destination.0
if [[ -L "$last" ]] ; then
# get the name of the linked dir
old="$(stat --printf="%N" "$last" | cut -d\' -f4)"
if [[ "$old" == "${dirs[0]}" ]] ; then
target="${dirs[1]}"
else
target="${dirs[0]}"
fi
else
# "$last" is not a link - first time initialization
target="${dirs[0]}"
fi
# now, with $target set, point the $last link at $target, for next time
rm "$last"
ln -s "$target" "$last"
#
# debugging printouts - remove in real life
echo "$target"
ls -l "$last"