...
Четверг , 21 ноября 2024

4.6.9. КОМАНДА SPLI

4.6.9. КОМАНДА SPLIT – РАЗБИВАЕМ ФАЙЛ НА НЕСКОЛЬКО ЧАСТЕЙ

Иногда бывает необходимо разбить один большой файл на несколько файлов меньшего объема. Для примера рассмотрим ситуацию, когда вы хотите перенести на свой домашний компьютер файл song.mp3 формата ‘MP3’, размером в 4,894,425 байт. Возможности перекачать этот файл по сети у вас нет, и единственно возможный способ переноса – воспользоваться дискетами. Но, поскольку на одну дискету файл не помещается, требуется разбить его на несколько маленьких файлов, а потом ‘собрать’ снова. Для решения этой задачи можно воспользоваться командой split.

Команда split копирует файл, разбивая его на отдельные файлы заданной длины. В качестве аргументов ей надо указать имя исходного файла и префикс имен выходных файлов. Имена выходных файлов будут составляться из этого префикса и двух дополнительных букв `aa’, `ab’, `ac’ и т. д. (без пробелов и точек между префиксом и буквами). Если префикс имен файлов не задан, то по умолчанию используется ‘x’, так что выходные файлы будут называться `xaa’, `xab’ и т. д..

Кроме аргументов можно задать опцию -b, определяющую размер выходных файлов в байтах. Вслед за -b должно стоять число, а за ним – буква k (показывающая, что размер выходного файла указан в килобайтах) или m (значит размер задан в мегабайтах). Если опция не задана, то по умолчанию размер выходных файлов принимается равным 1 Мбайту. Таким образом, чтобы перенести на дискетах файл song.mp3 надо вначале дать команду

[user]$ split -b1400k song.mp3 songbag 1

скопировать полученные файлы song.aa, song.ab, song.ac, song.ad, song.ae на отдельные дискеты, перенести их на домашний компьютер, скопировать в какой-нибудь каталог и восстановить исходный файл с помощью команды

[user]$ cat song.* › song.mp3

после чего можно удалить временные файлы song.xx.

4.6.10. СРАВНЕНИЕ ФАЙЛОВ И КОМАНДА PATCH

Вы не замечали, что задача сравнения содержимого двух различных файлов возникает при работе с компьютером удивительно часто? Конечно, ведь так легко скопировать файл, а потом забываешь, какая же из версий новее или качественнее (по одному автору ведомым критериям). Так что инструменты для сравнения файлов просто необходимы и Linux такие инструменты предоставляет.

Простейший из них – команда cmp. Эта команда просто сравнивает содержимое двух файлов по- байтно:

[user]$ cmp file1 file2

Если файлы полностью совпадают, она молча заканчивает свою работу (происходит возврат к командной строке без каких-либо дополнительных сообщений), а если файлы различаются, выдаются номер строки и номер байта в строке, где имеет место первое различие.

Конечно, информации, выдаваемой командой cmp, маловато для того, чтобы принять, например, решение о том, какой из двух файлов нам более ценен. Поэтому стоит воспользоваться командой diff для получения полного отчета о том, каковы же различия в интересующих нас файлах. Для получения отчета достаточно указать команде, какие именно файлы сравнивать:

[user]$ diff paper.old paper.new

Отчет о выявленных различиях будет выдан на стандартный выход. Естественно, его лучше перенаправить в файл:

[user]$ diff paper.old paper.new ›paper.diff

Для оценки версий одного и того же файла более удобна может оказаться команда sdiff, которая выдает результат сравнения в виде двух столбцов, разделенных пробелами. Если строки с одинаковыми номерами в файлах различаются, то в выводе команды sdiff они разделены вертикальной чертой |. Если строка имеется только в первом файле, она отмечена знаком ‹. Соответственно, строка, встречающаяся только во втором файле, помечена знаком ›.

Существует также команда diff3, которая позволяет сравнить сразу 3 файла.

Но все же наиболее часто используется традиционная для UNIX-систем команда diff. Эта ее востребованность объясняется тем, что создаваемый ею отчет о различиях двух файлов может быть использован командой patch. Чаще всего эти возможности используются при распространении обновлений программного обеспечения. Предположим, что некоторое программное приложение было разослано пользователям в виде файла program.c, содержащего исходный код программы на языке Си. После этого

Назад

О нас admin

Проверить еще

Backyard Landscape

Что такое быстровозводимые здания сегодня?

Желание жить только в самом безопасном и комфортном месте присуще каждому человеку, ведь это позволяет …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.