Как представить слайд-шоу с 'feh' с отметкой даты, отображаемой на фотографиях?

Основываясь на ответах всех и учитывая установленные утилиты на target, я нашел решение, которое работает, выполняя скрипт только из source. Сценарий выглядит следующим образом:

dest="/dev/$(dmesg | grep "now attached to ttyUSB" | awk '{print$NF}' | tail -1)"
cat binfile | gzip | base64 > binfile.64.gz
md5=$(md5sum binfile | awk '{print $1}')
printf "\necho \"[ \\\$(md5sum /binfile | awk '{print \\\$1}') == %s ] &&\\ 
\" > /flash.sh\n" \
    "$md5" \
    > "$dest"
printf " echo \"%s\" | base64 -d | gunzip > /binfile &&\\
/bin/sh /flash.sh
" "$(cat binfile.64.gz)" \
    > "$dest"

Он отправляет программу прошивки, которая проверяет, совпадают ли контрольные суммы исходного и целевого bin-файлов
сжимает и кодирует bin-файл,
посылает его,
и использует программу прошивки для прошивки карты. Если что-то сломается при кодировании/декодировании, оно не должно прошивать цель. Любая другая проблема вряд ли вызовет проблемы в системе, поскольку простая перезагрузка вернет ее в состояние по умолчанию.

Вот ссылка на мою полную реализацию этого процесса:
https://github.com/Soulthym/cycloneV-serial-flasher

2
06.08.2020, 10:29
1 ответ

В эти выходные я сидел с точно таким же вопросом, искал ответы, как сумасшедший, и наткнулся на этот пост. После того, как я, наконец, понял это сам, я теперь возвращаюсь сюда, создавая учетную запись, чтобы ответить на этот вопрос, если у кого-то еще может возникнуть такой же вопрос.

Как и многое другое, это на самом деле довольно просто. Вам необходимо установить программу exifprobe, частью которой является exifgrep.

sudo apt-get install exifprobe

Команда --info выполняет команду в оболочке, поэтому для ее работы необходимо установить exifprobe. Сборка exifprobe/exifgrep не работает в оболочке. С информацией --вы можете получить ее для печати любого вывода команды, напримерfeh --info 'echo "this will be printet on the image"'./

Когда exifprobe установлен, вы можете запустить следующую команду feh и получить нужную информацию о дате. Команда вырезания из примера просто удаляет часть текста, отображаемого рядом с датой, чтобы вы могли добавить его самостоятельно, если хотите.

feh --info "exifgrep 'DateTimeOriginal' %F"

ОДНАКО

На самом деле я нашел для себя другое решение. Понимаете,exifgrep не может обрабатывать пробелы в имени пути , поэтому, если у вас есть путь с именем "~/Photos/My Favorit Cats/cat.jpg" , он не будет работать, и независимо от того, что я пытался избежать, имя пути просто сломалось.

Вместо этого я наконец нашел exiftool, который можно установить, написав

sudo apt-get install exiftool

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

exiftool -s "~/Photos/My Favorit Cats/cat.jpg" 

-s предназначен для получения фактических имен тегов, без него вы получите удобочитаемые имена.

Затем с помощью этого инструмента я получил следующую команду. Обратите внимание на косую черту в конце, это просто означает показать все фотографии в этой папке. Команда cut снова предназначена для удаления имени тега, которое стоит перед фактической датой в строковом выводе.

feh --info 'exiftool -DateTimeOriginal %F | cut -d : -f 2-'./

Я надеюсь, что это будет полезно другим, ищущим ту же проблему.

0
18.03.2021, 23:14

Теги

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