Porównaj zawartość dwóch katalogów z wiersza poleceń

Anonim

Aby porównać i wyświetlić różne zawartości dwóch katalogów bez dodatkowych danych wyjściowych uzyskiwanych za pomocą poleceń takich jak diff, można zamiast tego użyć polecenia comm. Aby rozpocząć, uruchom Terminal i wpisz następujące polecenie, odpowiednio dostosowując ścieżki do katalogów:

comm -3 <(ls -1 folder1) <(ls -1 folder2)

Zostaną wyświetlone pliki różniące się w każdym folderze, przy czym pliki unikalne dla folderu 1 zostaną wyrównane do lewej, a pliki unikalne dla folderu 2 zostaną wyrównane do prawej.

Na przykład, aby porównać zawartość folderu o nazwie „Obrazy” i folderu o nazwie „OldPictures”, oba przechowywane w katalogu pobierania użytkownika, składnia będzie następująca:

comm -3 <(ls -1 ~/Pobrane pliki/Obrazy) <(ls -1 ~/Pobrane pliki/Stare obrazy)

Dane wyjściowe mogą wyglądać następująco:

$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Folder-1-File.PNG Folder -2-plik kopia.PNG zdjęcie 1 kopia.PNG zdjęcie 3.PNG

Zwróć uwagę na wcięcie, które pokazuje, które pliki są unikalne dla każdego folderu. W powyższym przykładzie pliki „zdjęcie 1 kopia.PNG” i „zdjęcie 3.png” są wyrównane do prawej, dlatego są unikalne dla katalogu OldPictures i Folder-1-File.Pliki PNG i Folder-2-File copy.PNG są unikalne dla oryginalnego folderu Obrazy.

Działa świetnie w systemie Mac OS X, ale jest to ogólne polecenie uniksowe, więc powinno być przydatne również w systemie Linux i innych wariantach. Jeśli napotkasz jakiekolwiek problemy ze zgodnością lub uznasz, że to polecenie jest niepotrzebnie skomplikowane, spróbuj użyć funkcji diff, aby wykonać tę samą funkcję.

Świetna sztuczka znaleziona przez @climagic na Twitterze, @osxdaily też tam jest!

Porównaj zawartość dwóch katalogów z wiersza poleceń