27

Я пытаюсь сделать что-то вроде:

diff `ls -1a ./dir1` `ls -1a ./dir2`

Но это не работает по понятным причинам. Есть ли лучший способ добиться этого (в 1 строке), чем этот?

ls -1a ./dir1 > lsdir1
ls -1a ./dir2 > lsdir2
diff lsdir1 lsdir2

Спасибо

2 ответа2

44

Вы были близки В bash вы хотите подстановку процессов, а не подстановку команд:

diff <(ls -1a ./dir1) <(ls -1a ./dir2)
7
diff -rq dir1 dir2

используя опцию -r, обойдите целые деревья каталогов, рекурсивно проверяя различия между подкаталогами и файлами, которые встречаются в сопоставимых точках в каждом дереве. Хитрость заключается в том, чтобы использовать опцию -q для подавления построчного сравнения

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .