Jak korzystać z plików Diff w systemie Linux
Diff to narzędzie wiersza poleceń dla systemów Unix, które pozwala porównać dwa pliki lub katalogi i zobaczyć różnice między nimi. Jest idealny do porównywania starych i nowych wersji plików, aby zobaczyć, co się zmieniło. W tym artykule pokazujemy, jak diff
łatwo porównywać pliki w systemie Linux.
Porównywanie plików z diff
- Otwórz okno terminala.
- Wpisz
diff
i ścieżki do dwóch plików, które chcesz porównać. W tym przypadku porównuję dwa małe programy C na moim pulpicie za pomocą następującego polecenia:
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
- Naciśnij, Enteraby wysłać polecenie. Wynikowy ekran pokaże wszystkie różne linie między plikami. Porównywane numery wierszy będą wyświetlane jako „1c1”, co oznacza, że pierwszy wiersz został zmieniony i znaleziono następujące różnice.
- Aby zobaczyć widok plików obok siebie i różnice między nimi, użyj flagi
-y
podiff
. Na przykład:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c
Każda linia z symbolem rury ( |
) jest linią z różnicą. Tylko pamiętaj, aby najpierw rozwinąć okno terminala, w przeciwnym razie możesz mieć trudności z zobaczeniem wyświetlacza.
Porównywanie plików z Meld
Funkcjonalność diff
można również uzyskać za pośrednictwem Meld , GUI dla diff
. Biorąc pod uwagę, że interfejs użytkownika diffa może być trudny do opanowania, Meld jest użytecznym narzędziem.
- Zainstaluj Meld z wiersza poleceń, otwierając terminal i wpisując:
sudo apt -y install meld
Lub
sudo dnf -y install meld
dla dystrybucji opartych na RPM.
Spowoduje to zainicjowanie menedżera pakietów apt i rozpoczęcie instalacji Meld. Zauważ, że -y
flaga automatycznie powie „tak” na wszelkie monity; usuń go, jeśli wolisz potwierdzać te monity ręcznie.
- Po wyświetleniu monitu wprowadź hasło administratora. Gdy ponownie zobaczysz wiersz polecenia, instalacja jest zakończona i można otworzyć program Meld.
- Kiedy otworzysz Meld, zobaczysz trzy opcje: porównanie plików, porównanie katalogów i widok kontroli wersji. Kliknij „Plik”.
- Pojawią się dwa rozwijane menu, oba z napisem „(Brak)”. Kliknij jeden, aby wybrać plik do porównania.
- Kliknij drugie menu rozwijane, aby wybrać drugi plik do porównania.
- Kliknij przycisk „Porównaj”.
- Następne okno podsumowuje wszelkie znalezione różnice między dwoma plikami. Czerwone znaki to różnice, a niebieskie tło wskazuje, że w tej linii występuje różnica. Zielone tło wskazuje, że linia istnieje w jednym pliku, ale nie w drugim.
- Aby przechodzić między różnicami, klikaj przyciski w górę iw dół na pasku menu. Możesz także kliknąć bezpośrednio w dokumencie za pomocą myszy.
Manipulowanie plikami w Meld
Oprócz dokonywania porównań Meld umożliwia zmianę porównywanych plików. Meld będzie nadal analizować dokument pod kątem zmian podczas modyfikowania dowolnej wersji, a w dowolnym momencie możesz nacisnąć Ctrl+ Z, aby cofnąć zmiany.
- Aby skopiować zmiany z jednego pliku do drugiego, kliknij małe czarne strzałki między zmianami. Na przykład kliknięcie strzałki po lewej stronie spowoduje użycie linii lewego dokumentu do nadpisania dokumentu po prawej stronie.
- Linie można również wstawiać do dokumentów bez nadpisywania. Jeśli przytrzymasz klawisz Ctrl, strzałki z ostatniego kroku zmienią się w znaki plusa. Kliknij ikonę, aby otworzyć małe okno dialogowe, w którym możesz wybrać miejsce wstawienia nowej linii.
- Na koniec wpisz bezpośrednio w dokumencie. Po prostu wstaw kursor tak jak zwykle i zacznij pisać.
- Po zakończeniu wprowadzania zmian kliknij przycisk „Zapisz”, aby zapisać pliki.
Tworzenie plików diff za pomocą Meld i diff
Oprócz pokazywania różnic między dwoma plikami, możesz także użyć Meld do tworzenia „plików różnicowych”. Są to małe fragmenty tekstu zawierające instrukcje, jak zastosować zmiany z jednej wersji pliku do drugiej. Jest to przydatne, jeśli chcesz szybko rozpowszechniać aktualizacje kodu bez ponownego udostępniania całego archiwum źródłowego.
- Otwórz dwa pliki, które chcesz porównać.
- Kliknij menu Opcje w prawym górnym rogu okna.
- Wybierz podmenu „Porównanie”.
- Kliknij opcję podrzędną „Formatuj jako łatkę”.
- Spowoduje to otwarcie małego okna, w którym Meld wydrukuje cały plik różnic między dwoma plikami. W tym momencie możesz skopiować ten tekst do schowka lub zapisać go w pliku. Aby zrobić to drugie, kliknij przycisk „Zapisz poprawkę”.
Chociaż tworzenie plików diff w Meld jest proste i bezpośrednie, istnieją przypadki, w których dostęp do GUI podczas edycji kodu może nie być możliwy. W tym celu możesz również użyć diff
programu do wygenerowania pliku różnicowego.
- Otwórz terminal i sprawdź, czy istnieją różnice między tymi dwoma plikami:
diff hello.c hello-1.c
- Utwórz prosty plik różnic, używając
-c
flagi:
diff -c hello.c hello-1.c > hello.diff
- Opcjonalnie użyj
-u
opcji, która łączy dwa strumienie tekstu w jeden ujednolicony blok różnic. Może to być pomocne, jeśli zmieniasz dużo kodu i chcesz zaoszczędzić miejsce na dysku:
diff -u hello.c hello-1.c > hello.diff
Używanie plików diff do poprawiania kodu źródłowego
Jak omówiono powyżej, plik diff umożliwia utworzenie łatwego do udostępnienia podsumowania zmian w kodzie źródłowym. Jednak sam diff nie może zastosować ich do istniejących plików. Aby to zrobić, użyj programu towarzyszącego diff, patch
.
- Określ oryginalny kod źródłowy, który plik różnic próbuje zmienić:
cat hello.diff | sed 1q
- Utwórz kopię zapasową oryginalnego kodu źródłowego:
cp hello.c hello.c.old
- Uruchom program patch z oryginalnym plikiem na pierwszym argumencie i plikiem diff na drugim:
patch hello.c hello.diff
Należy zauważyć, że plik różnic może również zawierać zmiany obejmujące wiele plików. Zastosuj to, umieszczając wszystkie pliki potrzebne do aktualizacji w jednym katalogu i uruchamiając patch < multi-file.diff
.
- Sprawdź, czy program łatek pomyślnie zaktualizował plik źródłowy, porównując go z kopią zapasową:
diff -y hello.c hello.c.old
FYI: Git to potężny wieloplatformowy program do kontroli wersji. Dowiedz się, jak możesz go używać do zarządzania repozytoriami kodu źródłowego w systemie Linux.
Często Zadawane Pytania
Czy można wielokrotnie poprawiać plik?
Tak. Należy jednak zauważyć, że wartość numeru wiersza w pliku różnicowym jest statyczna. Na przykład zastosowanie różnicy, która dodaje pięć wierszy kodu w wierszu 1, dostosuje cały plik o pięć wierszy. Podczas gdy nowoczesne narzędzia mogą kompensować zmiany z pojedynczych różnic, zastosowanie więcej niż jednego może spowodować niepotrzebne konflikty kodu.
Czy plik diff jest podobny do łatki Git?
Tak. Zarówno diff, jak i Git używają podobnego typu formatu dla swoich poprawek kodu. W rezultacie można zamienić te dwa narzędzia podczas stosowania aktualizacji kodu źródłowego. Na przykład bieganie git apply hello.diff
jest równoznaczne z bieganiem patch < hello.diff
.
Czy możesz używać Meld z programem do kontroli wersji, takim jak Git?
Tak. Jedną z najpotężniejszych funkcji Meld jest to, że może działać w sposób przejrzysty z dowolnym programem do kontroli wersji. Daje to możliwość łatwej interakcji z repozytoriami poza interfejsem terminala.
Aby to zrobić, naciśnij Ctrl+ N, a następnie kliknij przycisk „Widok kontroli wersji”. Następnie kliknij pole rozwijane pod nim i wybierz „Inne”. Spowoduje to wyświetlenie małego okna, w którym możesz zobaczyć i załadować swoje repozytorium Git.
Źródło obrazu: Unsplash . Wszystkie zrzuty ekranu autorstwa Ramces Red.
Dodaj komentarz