У меня часто возникает необходимость подсчитать в той или иной папке число книг fb2, что необходимо для приведения своей домашней библиотеке в порядок.
Для подсчёта используется сценарий (скрипт на bash), состоящий из двух команд: 1) найти в выделенной папке число файлов fb2 и полученный результат записать в файл; 2) прочитать содержание записанного файла и вывести его на экран всплывающим сообщением (по терминологии системы – оповещением).
Возможно, что код может быть более корректным. Сценарий формировался на скорую руку и является "самопальным" творением.
Так как мной используется графическое окружение XFCE, то сценарий оформляется в виде особого действия файлового менеджера Thunar. Пример особого действия можно посмотреть
здесь.
Подсчёт fb2 и запись полученного результата в файл:
find %f -name "*.fb2" | wc -l > /tmp/count-books.txt
Чтение файла txt и вывод его содержания во всплывающее сообщение на экране:
count=`cat /tmp/count-books.txt`
notify-send --expire-time=8000 " fb2 в папке – $count "
Пояснение. --expire-time=8000 означает, что длительность отображения всплывающего уведомления составляет 8 секунд. По умолчанию система устанавливает 5 секунд, поэтому 8 секунд были выбраны специально, чтобы, с одной стороны, "успеть сообразить" о чём ведётся речь, а с другой – чтобы уведомление не сильно долго отображалось, отвлекая внимание. Значение указывается в миллисекундах, поэтому выбранное число секунд умножается на 1000.
Совмещение всех команд осуществляется через указание действия &&. Вторая часть сценария (скрипта на bash) "обёртывается" в $(...)
Результирующая команда имеет вид (в одну строку):
find %f -name "*.fb2" | wc -l > /tmp/count-books.txt && $(count=`cat /tmp/count-books.txt` && notify-send --expire-time=8000 " fb2 в папке – $count ")
В условиях появления "особого действия" в правом контекстном меню Thunar ставится галочка в поле "Каталоги".
Можно добавить "красивости", выражающейся в том, что при выводе перед текстом будет отображаться выбранный значок. Значок придётся выбирать размером в 48 пикселей, поскольку при меньшем размере он будет принудительно увеличиваться и восприниматься немного размытым. Например, команда отображения значка:
--icon=/usr/share/icons/Mint-Y/apps/48/fbreader.png
Соответственно, команда вывода всплывающего сообщения со значком будет иметь вид:
notify-send --expire-time=8000 --icon=/usr/share/icons/Mint-Y/apps/48/fbreader.png " fb2 в папке – $count "
Небольшой демонстрационный ролик –
перейти.
📍 Таким же образом можно создать особое действие для подсчёта всех файлов в выделенной папке. Для этого вместо команды
find %f -name "*.fb2" | wc -l >
использовать команду
find %f -type f | wc -l >