unix - сортировать содержимое двух папок, затем сравнивать с помощью команды diff

575
postit98

Как мне sortсодержимое двух разных папок, прежде чем сравнивать эти две директории diff?

2
возможный дубликат [сравните два дерева каталогов] (http://superuser.com/questions/734548/compare-two-directory-trees) Paul 9 лет назад 0
не может использовать `rsync`. говорит не найдено postit98 9 лет назад 0
я могу использовать `comm` в этом? postit98 9 лет назад 0

1 ответ на вопрос

1
chaos

You could use diff with process substitution:

diff <(ls -a dir1/) <(ls -a dir2/) 
  • <(...) creates a file descriptor whose path is added as argument to diff.
  • When no sort option is given, ls sort the output alphabetically.
  • The two ls-outputs are give to diff for comparsion.

My example folders look like this:

. ├── dir1 │   ├── file1 │   ├── file2 │   └── file3 └── dir2 ├── file2 ├── file3 └── file4 

The output is this case is:

$ diff <(ls -a dir1/) <(ls -a dir2/) 3d2 < file1 5a5 > file4