Мониторинг изменения файлов с помощью fspy

Нашел неплохую консольную утилиту fspy, которая позволяет рекурсивно отслеживать изменения в файлах (или просто когда происходит доступ), поддерживает множество фильтров и финтифлюшек,

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

fspy -R 1 /


Получаем вывод:

[Tue May 28 19:34:16 2013] file was accessed:/dev/ptmx]

Распаковка и упаковка xlsx и docx

Форматы xlsx и docx являются по сути своей обычными zip файлами с наборами xml внутри.

Как распаковать я думаю и так понятно, а вот упаковать так, чтобы при открытии офис не выдавал ошибку можно с помощью 7z в консоли так:

7z a -tzip файл.xlsx -mx0 ./директория/*

Beets: песни с тэгами и стихами

О способах упорядочивания мультимедийных коллекций сказано немало. Сегодня я установил еще одну утилиту для этих целей: beets. Это не музыкальный проигрыватель, а «упорядочиватель» файлов, который, опираясь на размещенную в Интернете базу данных, максимально насыщает mp3-файлы тэгами и даже подтягивает слова песен, что очень актуально сейчас для меня как для интенсивно «прокачивающего» английский.

Попутно утилита правильно переименовывает файлы. Например, подборка песен группы Scorpions до обработки beets выглядела так:

( Читать дальше )

Консольный проигрыватель для файлов flac

Использование консоли не исключает прослушивания музыки, причем порой не менее комфортного, чем в GUI-режиме. Широко известны, например программы mpg123, ogg123. А вот с форматом flac дела обстоят похуже. Нет для него толковы консольных проигрывателей. Хотя его поддерживают mplayer (он вполне себе консольный, если что), а также пакет ffmpeg, в состав которого входит, и плейер, это продукты очень громоздки. Чтобы не тратить на них ресурсы, я написал однострочник-алиас, опирающийся на стандартную утилиту кодирования/декодирования пакета flac.

alias flac='ls -1 *.flac | while read l ; do flac -d -o - "$l" | aplay ; done'


Сижу уже минут 20 слушаю музыку, работает!

Запускать из директории, в которой находятся прослушиваемые файлы.

Качественное преобразование svg в pdf

Перепробовал несколько способов конвертирования svg в pdf в linux. Самым качественным для меня по результатам оказался вот такой способ с использованием векторного редактора inkscape:

1. Упрощаем svg, убирая все лишнее:

inkscape file.svg --export-plain-svg=file-plain.svg


2. Конвертируем в pdf:

inkscape file-plain.svg --export-pdf=file.pdf

Графический интерфейс в bash скриптах

Сегодня приведу небольшой пример того, как можно сделать графический интерфейс выбора из списка с помощью bash и т.н. zenity (gtk).

Окно выбора представляет собой список из 2х организаций, например (названия замазаны квадратиками)



Если нажать «Отмена» скрипт просто прекратит работу, если нажать «ОК» выбрав филиал, или просто 2 раза щелкнуть на названии филиала — сработает та или иная часть скрипта.

Сам скрипт:

( Читать дальше )

Удаляем информацию о координатах GPS из JPG файлов

Иногда нужно чтобы в JPEG файлах не осталось информации о том, где они ыли сделаны, т.е. не было GPS координат. Просмотреть дополнительную информацию о файле можно с помощь утилиты jhead. В ubuntu уже есть собранный пакет:

apt-get install jhead


Пример информации о фото:

jhead ФАЙЛ.JPG


File name: ФАЙЛ.JPG
File size: 1529011 bytes
File date: 2012:10:26 08:28:58
Camera make: Apple
Camera model: iPod touch
Date/Time: 2012:10:25 21:28:58
Resolution: 2592 x 1936
Flash used: No (auto)
Focal length: 3.3mm (35mm equivalent: 33mm)
Exposure time: 0.0008 s (1/1318 )
Aperture: f/2.4
ISO equiv.: 6400
Whitebalance: Auto
Metering Mode: pattern
Exposure: program (auto)

Убрать лишнее можно командой:

jhead -purejpg ФАЙЛ.JPG

Поиск файлов в Linux при помощи команды locate

Оригинал — Find files on Linux with the command locate

Перевод — Поиск файлов в Linux при помощи команды locate

Статья про одну из команд используемых в командной оболочке Linux: locate.

Эта программа принимает в качестве параметра имя файла (или часть имени) и моментально выводит список путей до этого файла в файловой системе; альтернативой этой программе является find, но разница между ними заключается в том, что find производит поиск по файловой системе и требуется значительный период времени для получения результата, а отличие в работе этих программ состоит в том, что locate использует собственную базу данных для хранения имен файлов в то время, как find исследует директории в поисках заданного параметром командной строки имени файла.

Подробнее по ссылкам.

pdfgrep - поиск по содержимому pdf файлов

Есть куча книг и нужно проверить их на наличие в них определенной фразы, естественно открывать каждую и смотреть оглавление — это не unix way, так что нам поможет консольная утилита pdfgrep (к слову для OpenSUSE 11.4 я нашел пакет здесь).

Ну что ж, поищем рекурсивно в директории torrents в pdf файлах абривиатуру VFT:

find /torrents/ -iname '*.pdf' -exec pdfgrep VFT {} +


/torrents/ophthalmology-books-1/Comprehensive Ophthalmology.pdf: (VFTF)’.
/torrents/ophthalmology-books-1/Comprehensive Ophthalmology.pdf: Vision for the future (VFTF)
/torrents/ophthalmology-books-1/Comprehensive Ophthalmology.pdf: Vision for the future (VFTF).
/torrents/ophthalmology-books-1/Comprehensive Ophthalmology.pdf: VISION FOR THE FUTURE (VFTF)


Удобно, что видна строка в которой встречается искомое слово.

multitail: отслеживаем несколько log файлов

Наткнулся на интересную консольную утилиту — multitail, позволяющюю выводить вновь добавляемые строки нескольких файлов (например, log файлов) на экран, раскрашивать их и искать в нескольких окнах.