ГлавнаяОперационные системыLinuxКак использовать файлы различий в Linux

Как использовать файлы различий в Linux

Diff — это инструмент командной строки для систем Unix, который позволяет сравнивать два файла или каталога и видеть различия между ними. Он идеально подходит для сравнения старых и новых версий файлов, чтобы увидеть, что изменилось. В этой статье мы покажем вам, как можно использовать diffдля удобного сравнения файлов в Linux.

Совет : научитесь копировать и вставлять текст, файлы и папки в терминале Linux .

Сравнение файлов с помощью diff

  1. Откройте окно терминала.
  1. Введите diffи укажите пути к двум файлам, которые вы хотите сравнить. В данном случае я сравниваю две небольшие программы на языке C на своем рабочем столе, используя следующую команду:
Окно терминала, показывающее команду diff.
  1. Нажмите Enter, чтобы отправить команду. В результате дисплей покажет вам все различные строки между файлами. Номера сравниваемых строк будут отображаться как «1c1», что означает, что первая строка была изменена и были обнаружены следующие различия.
Окно терминала, показывающее вывод команды diff.
  1. Чтобы просмотреть файлы рядом и их различия, используйте флаг -yпосле diff. Например:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
Окно терминала, показывающее команду, которая распечатает визуальную разницу.

Любая строка с символом вертикальной черты ( |) является строкой с разницей. Только обязательно сначала разверните окно терминала, иначе вам может быть трудно увидеть изображение.

Окно терминала, показывающее выходные данные команды визуального сравнения.

Полезно знать: к использование каналов Bash вместе с мощной утилитой sed узнайте, как управлять выводом программы.

Сравнение файлов с помощью Meld

Доступ к функциям diffтакже можно получить через Слияние , графический интерфейс для diff. Учитывая, что с пользовательским интерфейсом diff может быть сложно разобраться, Meld — полезный инструмент.

  1. Установите Meld из командной строки, открыв терминал и набрав:
sudo apt -y install meld

или

sudo dnf -y install meld

для дистрибутивов на базе RPM.

При этом будет инициализирован менеджер пакетов apt и начнется установка Meld. Обратите внимание, что флаг -yавтоматически отвечает «да» на любые запросы; пожалуйста, удалите его, если вы предпочитаете подтверждать эти запросы вручную.

Окно терминала, показывающее команду установки Meld.
  1. Введите пароль администратора при появлении соответствующего запроса. Когда вы снова увидите командную строку, установка завершена и Meld можно открыть.
Окно терминала, показывающее процесс установки Meld.
  1. Когда вы откроете Meld, вы увидите три варианта: сравнение файлов, сравнение ката

    Сравнение файлов с помощью Meld

    е «Файл».
Скриншот экрана приветствия Meld.
  1. Появятся два раскрывающихся меню, в обоих написано «(Нет)». Нажмите на один из них, чтобы выбрать файл для сравнения.
Скриншот экрана объединения с выделением первого средства выбора файлов.
  1. Нажмите на другое раскрывающееся меню, чтобы выбрать второй файл для сравнения.
Скриншот экрана объединения с выделением второго средства выбора файлов.
  1. Нажмите кнопку «Сравнить».
Скриншот экрана «Объединить» с подсветкой кнопки «Сравнить».
  1. В следующем окне суммируются все различия, обнаруженные между двумя файлами. Красные символы обозначают различия, а синий фон указывает на наличие различий в этой строке. Зеленый фон указывает на то, что строка существует в одном файле, но отсутствует в другом.
Скриншот программы Meld с простым сравнением двух файлов.
  1. Чтобы перемещаться между различиями, нажимайте кнопки вверх и вниз в строке меню. Вы также можете щелкнуть мышью прямо в документе.
Скриншот программы Meld, на котором выделена кнопка навигации по различиям.

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

Управление файлами в Meld

Помимо сравнения, Meld позволяет изменять сравниваемые файлы. Meld продолжит анализировать документ на наличие изменений при изменении любой версии, и вы можете в любой момент нажать Ctrl+ Z, чтобы отменить изменения.

  1. Чтобы скопировать изменения из одного файла в другой, щелкните маленькие черные стрелки между изменениями. Например, если щелкнуть стрелку слева, будет использоваться левая линия документа, чтобы перезаписать документ справа.
Снимок экрана программы Meld, показывающий кнопки разрешения различий.
  1. Строки также можно вставлять в документы без перезаписи. Если вы удержите нажатой клавишу Ctrl, вы увидите, что стрелки последнего шага превратятся в знаки плюса. Щелкните значок, чтобы открыть небольшое диалоговое окно, в котором можно выбрать место вставки новой строки.
Снимок экрана программы Meld, показывающий приглашение к добавлению различий.
  1. Наконец, введите текст прямо в документ. Просто вставьте курсор, как обычно, и начните печатать.
  1. Завершив внесение изменений, нажмите кнопку «Сохранить», чтобы сохранить файлы.
Скриншот программы Meld, на котором выделена кнопка сохранения для каждого файла.

Создание файлов различий с использованием Meld и diff

Помимо демонстрации различий между двумя файлами, вы также можете использовать Meld для создания «файлов различий». Это небольшие фрагменты текста, содержащие инструкции о том, как применить изменения из одной версии файла в другую. Это полезно, если вы хотите быстро распространять обновления кода, не передавая весь исходный архив.

  1. Откройте два файла, которые хотите сравнить.
Скриншот программы Meld, показывающий простой результат.
  1. Нажмите меню «Параметры» в правом верхнем углу окна.
Снимок экрана, на котором выделена кнопка параметров Meld.
  1. Выберите подменю «Сравнение».
Скриншот меню параметров Meld с выделением подменю «Сравнение».
  1. Нажмите кнопку «Форматировать как исправление».
Снимок экрана подменю «Сравнение» с выделением подопции «Формат».
  1. Откроется небольшое окно, в котором Meld распечатает весь

    Управление файлами в Meld

    файлами. На этом этапе вы можете либо скопировать этот текст в буфер обмена, либо сохранить его в файл. Чтобы сделать последнее, нажмите кнопку «Сохранить патч».
Скриншот подокна Meld's Patch с подсветкой кнопки «Сохранить патч».

Хотя создавать файлы различий внутри Meld просто и понятно, бывают случаи, когда доступ к графическому интерфейсу при редактировании кода может оказаться невозможным. Для этого вы также можете использовать программу diffдля создания файла различий.

  1. Откройте терминал и проверьте, есть ли различия между двумя файлами:
diff hello.c hello-1.c
Терминал, показывающий простую разницу между двумя файлами.
  1. Создайте простой файл различий, используя флаг -c:
diff -c hello.c hello-1.c > hello.diff
Терминал, показывающий базовый вывод файла различий.
  1. При желании можно использовать параметр -u, который объединяет два потока текста в один единый блок различий. Это может быть полезно, если вы меняете много кода и хотите сэкономить место на диске:
diff -u hello.c hello-1.c > hello.diff
Терминал, показывающий более сложный унифицированный вывод различий.<

Использование файлов различий для исправления исходного кода

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

  1. Определите исходный исходный код, который пытается изменить файл различий:
cat hello.diff | sed 1q
Создание файлов различий с использованием Meld и diff.">
  1. Создайте резервную копию исходного исходного кода:
cp hello.c hello.c.old
  1. Запустите программу исправления с исходным файлом в качестве первого аргумента и файлом различий во втором:
patch hello.c hello.diff
Терминал, показывающий простую команду исправления для одного исходного файла.

Важно отметить, что файл различий также может содержать изменения, охватывающие несколько файлов. Примените это, поместив все файлы, необходимые для обновления, в один каталог и запустив patch < multi-file.diff.

  1. Проверьте, успешно ли программа исправлений обновила исходный файл, сравнив его с резервной копией:
diff -y hello.c hello.c.old
Терминал, показывающий визуальную разницу между новым и исходным исходным файлом.

К вашему сведению: Git — мощная кроссплатформенная программа контроля версий. Узнайте, как использовать его до управлять репозиториями исходного кода в Linux .

Часто задаваемые вопросы

Можно ли исправлять файл несколько раз?

Да. Однако важно отметить, что значение номера строки внутри файла различий является статическим. Например, применение разницы, которая добавляет пять строк кода в строке 1, изменит весь файл на пять строк. Хотя современные инструменты могут компенсировать изменения, вызванные отдельными различиями, применение нескольких различий может привести к ненужным конфликтам кода.

Похож ли файл различий на патч Git?

Да. И diff, и Git используют одинаковый формат для своих исправлений кода. В результате вы можете менять местами эти две утилиты при применении обновлений к исходному коду. Например, запуск git apply hello.diffэквивалентен запуску patch < hello.diff.

Можете ли вы использовать Meld с программой контроля версий, такой как Git?

Да. Одной из самых мощных особенностей Meld является то, что он может прозрачно работать с любой программой контроля версий. Это дает вам возможность легко взаимодействовать с вашими репозиториями вне интерфейса терминала.

Для этого нажмите Ctrl+ N, затем нажмите кнопку «Просмотр контроля версий». Затем щелкните раскрывающийся список под ним и выберите «Другое». Откроется небольшое окно, в котором вы сможете просмотреть и загрузить свой репозиторий Git.

Изображение предоставлено: Unsplash . Все скриншоты сделаны Рамсесом Редом.

Использование файлов различий для исправления исходного кода

Часто задаваемые вопросы

Можно ли исправлять файл несколько раз?

Похож ли файл различий на патч Git?

Можете ли вы использовать Meld с программой контроля версий, такой как Git?

ПОХОЖИЕ СТАТЬИ

Популярные записи