При регистрации с новым сеансом ssh
вы можете использовать что-то вроде tmux attach -d || tmux new
для присоединения любого существующего сеанса tmux
или создания нового сеанса, если сеансов tmux
не существует. Хотя это не предотвратит запуск сеанса tmux
в фоновом режиме при обрыве соединения ssh
, это предотвратит накопление этих заброшенных сеансов.
Некоторые инструменты для работы с EXIF имеют встроенный способ переименования файлов на основе данных EXIF, но я не знаю ни одного, который мог бы делать это наоборот. Так что пусть оболочка вызывает программу с нужными частями имен файлов. Вот сценарий, который обрабатывает только один файл (передайте имя как единственный аргумент сценария).
#!/bin/sh
title=${1##*/}
author=${title%% *}; title=${title#* }
year=${title%% *}; title=${title#* }
exiftool -Author="$author" -Title="$title" -CreateDate="$year" "$1"
Объяснение: Я использую конструкции расширения параметров для базовой обработки строк: поместите базовое имя (после последнего /
) в title
; поместите часть до первого пробела в author
и удалите ее из title
; повторите с годом.
Чтобы обработать все файлы в каталоге, поместите этот код в цикл.
#!/bin/sh
for filename in *\ *\ *.pdf; do
title=${filename##*/}
author=${title%% *}; title=${title#* }
year=${title%% *}; title=${title#* }
exiftool -Author="$author" -Title="$title" -CreateDate="$year" "$filename"
done
Для рекурсивной обработки всех файлов в каталоге и его подкаталогах используйте find
.
find /path/to/top/directory -name '* * *.pdf' -type f -exec sh -c '
for filename do
…
done
' _ {} +