Внутреннее устройство Linux - страница 25
>.tar.gz:
$ zcat file.tar.gz | tar xvf —
Команда zcat равносильна команде gunzip — dc. Параметр — d отвечает за декомпрессию, а параметр — c отправляет результат на стандартный вывод (в данном случае команде tar).
Поскольку использование команды zcat стало общепринятым, у версии команды tar, входящей в систему Linux, есть ярлык-сокращение. Можно применять в качестве параметра z, чтобы автоматически задействовать команду gzip. Это срабатывает как при извлечении архива (как в режимах x или t у команды tar), так и при создании (с параметром c). Используйте, например, следующую команду, чтобы проверить сжатый архив:
$ tar ztvf file.tar.gz
Вам следует хорошо освоить длинный вариант команды, прежде чем применять сокращение.
примечание
Файл. tgz — это то же самое, что и файл. tar.gz. Суффикс приспособлен для использования в файловых системах FAT (на основе MS-DOS).
2.18.5. Другие утилиты сжатия
Еще одной командой для компрессии в системе Unix является bzip2, которая создает файлы, оканчивающиеся на. bz2. Работая чуть медленнее по сравнению с gzip, команда bzip2 зачастую сжимает текстовые файлы немного лучше и поэтому чрезвычайно популярна при распространении исходного программного кода. Для декомпрессии следует использовать команду bunzip2, а параметры для обоих компонентов довольно похожи на параметры команды gzip, так что вам не придется учить ничего нового. Для команды tar параметром компрессии/декомпрессии в режиме bzip2 является символ j.
Новая команда для сжатия под названием xz также приобретает популярность. Соответствующая ей команда декомпрессии называется unxz, а ее аргументы сходны с параметрами команды gzip.
В большинстве дистрибутивов системы Linux присутствуют команды zip и unzip, которые совместимы с ZIP-архивами Windows. Они работают как с обычными файлами. zip, так и с самораспаковывающимися архивами, файлы которых оканчиваются на. exe. Однако если вам встретится файл, который оканчивается на. Z, то вы обнаружили реликт, который был создан командой, бывшей когда-то стандартом для системы Unix. Команда gunzip способна распаковать такие файлы, однако создать их с помощью gzip невозможно.
2.19. Основные сведения об иерархии каталогов Linux
Теперь, когда вы знаете о том, как получать сведения о файлах, выполнять смену каталогов и читать страницы руководства, вы готовы начать исследование файлов вашей системы. Подробности о структуре каталогов изложены на веб-странице Filesystem Hierarchy Standard, or FHS (http://www.pathname.com/fhs/), но для начала будет достаточно следующего небольшого обзора.
На рис. 2.2 представлен упрощенный вариант иерархии каталогов, в котором показано несколько каталогов внутри /, /usr и /var. Обратите внимание на то, что внутри каталога /usr есть такие же названия, как и в каталоге /.
Рис. 2.2. Иерархия каталогов Linux
Наиболее важные подкаталоги в корневом каталоге таковы.
• /bin. Содержит готовые к запуску команды (известные также как исполняемые файлы), включая большинство основных команд системы Unix, таких как ls и cp. Большинство команд в каталоге /bin представлено в двоичном формате, поскольку они созданы компилятором языка C, однако в современных системах некоторые команды являются сценариями оболочки.
• /dev. Содержит файлы устройств (о них подробнее — в главе 3).
• /etc. Этот центральный каталог системной конфигурации содержит пароль пользователя, файлы загрузки, файлы устройств, сетевые настройки и другие параметры. Многие элементы каталога /etc зависят от аппаратного обеспечения. Например, каталог /etc/X11 содержит конфигурацию видеокарты и «оконного» интерфейса.
• /home. Содержит личные каталоги обычных пользователей. В большинстве версий системы Unix соблюдается этот стандарт.
• /lib. Название является сокращением слова library («библиотека»). Этот каталог содержит файлы библиотек, хранящие программный код, который может быть применен исполняемыми файлами. Существуют два типа библиотек: статические и используемые совместно. Каталог /lib должен содержать только библиотеки для совместного пользования. Другие каталоги библиотек, например /usr/lib, содержат оба типа, а также другие вспомогательные файлы (более подробно мы рассмотрим совместно используемые библиотеки в главе 15).