Сравнете съдържанието на две директории от командния ред

Anonim

За да сравните и изброите различното съдържание на две директории без допълнителен изход, който получавате чрез команди като diff, можете вместо това да използвате командата comm. За да започнете, стартирайте Терминал и въведете следната команда, като коригирате пътищата на директорията, както е подходящо:

comm -3 <(ls -1 папка1) <(ls -1 папка2)

Изходът в списъка ще бъде файловете, които са различни във всяка папка, с файлове, уникални за папка 1, подравнени вляво, и файлове, уникални за папка 2, подравнени вдясно.

Например, за да сравните съдържанието на папка, наречена „Pictures“ и папка, наречена „OldPictures“, и двете съхранени в директорията за изтегляне на потребители, синтаксисът ще бъде следният:

comm -3 <(ls -1 ~/Изтегляния/Снимки) <(ls -1 ~/Изтегляния/Стари снимки)

Изходът може да изглежда по следния начин:

$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures) Folder-1-File.PNG Folder -2-Копиране на файл.PNG снимка 1 копие.PNG снимка 3.PNG

Обърнете внимание на отстъпа, който ви показва кои файлове са уникални за всяка папка. В горния пример файлът „photo 1 copy.PNG“ и „photo 3.png“ са подравнени надясно, следователно те са уникални за директорията OldPictures и Folder-1-File.PNG и папка-2-файлово копие.PNG са уникални за оригиналната папка Картини.

Това работи чудесно в Mac OS X, но е обща команда за unix, така че трябва да я намерите използваема и в linux и други варианти. Ако срещнете някакви проблеми със съвместимостта или смятате, че тази команда е ненужно сложна, опитайте да използвате diff, за да изпълните същата функция.

Страхотен трик, намерен от @climagic в Twitter, @osxdaii също е там!

Сравнете съдържанието на две директории от командния ред