Linux Mint и его Cinnamon. Очерки применителя
Шрифт:
Итоговый компрессированный файл получает имя вида *.bz2 и может быть распакован командой bunzip2 (или командой bzip2 -d). Следует только помнить, что форматы *.gz и *.bz2 не совместимы между собой. Соответственно, первый не может быть распакован программой bunzip2, и наоборот.
Как и gzip, утилита bzip2 может быть вызвана из архиватора tar — при создании компрессированного архива так:
$ tar cjf archive.tar.bz2 path2/
А при развёртывании оного — эдак:
$ tar xjf archive.tar.bz2
Особо задерживаться на этой утилите не хочется ещё и потому, что, мне кажется, вскоре она выйдет из
Реализацией формата xz является набор утилит XZ Utils, основанный на алгоритме LZMA (Lempel-Ziv-Markov chain-Algorithm). Сам по себе метод сжатия LZMA существует достаточно давно: он был разработан нашим соотечественником Игорем Павловым с использованием достижений предшественников, разработавших алгоритмы LZ77, LZ78 и LZV — что, впрочем, могло бы составить предмет отдельной истории, которую когда-нибудь кто-нибудь напишет.
А метод LZMA был задействован его автором в собственной же разработке — утилите компрессии 7-Zip для Windows, быстро снискавшей славу несравненного «сжимателя» файлов. Инструментарий для разработки программ, использующих данный метод (LZMA SDK) распространялся сначала на условиях лицензии GPL, что позволяло использовать его в соответствующих проектах (например, в GNU tar). Однако в конце 2008 года Игорь Павлов превратил его в общественное достояние (Public Domain). Вслед за чем был создан основанный на этом методе пакет LZMA Utils, немедленно встроенный в tar. Что сделало этот метод компрессии столь же простым и обыденным, как gzip или bzip2. И с тех пор эта возможность, после установки соответствующего пакета, присутствует во всех дистрибутивах Linux.
Правда, вслед за тем появился LZMA2, улучшенная версия того же алгоритма, обеспечивающий более высокую степень сжатия и лучшую поддержку многопоточности. А на его основе был создан пакет XZ Utils — именно он в настоящее время используется в Mint по умолчанию. И включает в себя такие команды:
xz — компрессор и, при указании опции --decompress, декомпрессор;
unxz — собственно декомпрессор;
xzcat осуществляет декомпрессию на стандартный вывод;
xzmore и xzless — pager'ы для lzma-компрессированных текстовых файлов;
xzgrep, xzegrep, xzfgrep — поиск текстовых фрагментов в xz-компрессированных файлах.
Последние три утилиты работают аналогично командам xzgrep, xzegrep, xzfgrep, применённым к некомпрессированным файлам. А команда xzcat является аналогом утилиты cat. Об этих четырёх командах будет подробно говориться в ближайших разделах.
Утилиты пакета XZ Utils могут, с некоторыми ограничениями, работать с файлами, запакованными старым методом LZMA1 (но не наоборот). Хотя сами по себе пакеты XZ Utils и LZMA Utils между собой конфликтуют.
Разумеется, поддержка XZ была немедленно встроена и в tar. Так что теперь для применения компрессии LZMA2 при создании tar-архива
$ tar --create --xz --file filename.tar.xz path2/arch_dir
Или, в более употребимой простыми людьми краткой форме, так:
$ tar cJf filename.tar.lzma path2/arch_dir
где опция J и представляет собой алиас для полной формы -xz. Если присваивать архивному файлу суффикс по правилам утилиты tar, опцию J можно заменить на a (что эквивалентно полной форме --auto-compress), обеспечивающей определение типа компрессии по «расширению» *.xz. Более того, скажу по секрету: если архив именован по правилам, то можно опустить даже опцию --auto-compress — она и так будет задействована по умолчанию.
Распаковка xz-компрессированного архива выполняется в обратном порядке:
$ tar xJf filename.tar.xz
или $ tar xaf filename.tar.xz
Метод LZMA и особенно LZMA2 вследствие эффективности компрессии быстро нашёл себе применение в сборке дистрибутивных пакетов: именно с его помощью в настоящее время сжимаются deb-пакеты Mint (и всех других дистрибутивов, использующих этот формат пакетов).
Утилита find и xargs при ней
На этих страницах речь пойдет о пакете, известном в проекте GNU как findutils. И в первую голову — о команде find (как, впрочем, и о тесно связанной с ней команде xargs). Столь высокая честь выпадает им потому, что посредством этих двух команд можно выполнить если не все, то изрядную задач, возникающих при работе с файлами.
Итак, апофеоз командного файлового менеджмента — утилита find. Строго говоря, вопреки своему имени, команда эта выполняет не поиск файлов как таковой, но — рекурсивный обход дерева каталогов, начиная с заданного в качестве аргумента, отбирает из них файлы в соответствие с некоторыми критериями и выполняет над отбракованным файловым хозяйством некоторые действия. Именно эту ее особенность подчеркивает резюме команды find, получаемое (в некоторых системах) посредством
$ whatis find
find(1) — walk a file hierarchy
что применительно случаю можно перевести как «прогулка по файловой системе».
Команда find по своему синтаксису существенно отличается от большинства прочих Unix-команд. В обобщенном виде формат ее можно представить следующим образом:
$ find аргумент [опция_поиска] [значение] [опция_действия]
В качестве аргумента здесь задается путь поиска, то есть каталог, начиная с которого следует совершать обход файловой системы, например, корень ее:
$ find / [опция_поиска] [значение]
[опция_действия]
или домашний каталог пользователя:
$ find ~/ [опция_поиска] [значение]
[опция_действия]
Опция поиска — критерий, по которому следует отбирать файл (файлы) из определенных в аргументе частей файловой системы. В качестве таковых могут выступать имя файла (-name), его тип (-type), атрибуты принадлежности, доступа или времени.
Ну а опция действия определяет, что же надлежит сделать с отобранными файлом или файлами. А сделать с ними, надо заметить, можно немало — начиная с вывода на экран (-print, опция действия по умолчанию) и кончая передачей в качестве аргументов любой другой команде (-exec).
Её (мой) ребенок
Любовные романы:
современные любовные романы
рейтинг книги
Господин военлёт
Фантастика:
альтернативная история
рейтинг книги
Жандарм
1. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Имя нам Легион. Том 1
1. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
рейтинг книги
Папина дочка
4. Самбисты
Любовные романы:
современные любовные романы
рейтинг книги
Война
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
рейтинг книги
Игра Кота 2
2. ОДИН ИЗ СЕМИ
Фантастика:
фэнтези
рпг
рейтинг книги
Бывшие. Война в академии магии
2. Измены
Любовные романы:
любовно-фантастические романы
рейтинг книги
Имперец. Земли Итреи
11. Путь
Фантастика:
героическая фантастика
боевая фантастика
рейтинг книги
Дурашка в столичной академии
Фантастика:
фэнтези
рейтинг книги
Младший сын князя. Том 2
2. Аналитик
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Белые погоны
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
рейтинг книги
Огненный наследник
10. Десять Принцев Российской Империи
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
