Существуют ли какие-либо инструменты для Linux / Unix, которые находят все файлы в одном каталоге, а не в другом? В основном я ищу diff, который работает на выходе ls.
Короткие и сладкие сценарии также приветствуются.
linux
command-line-interface
filesystems
Вилли Баллентхин
источник
источник
diff dir1 dir2 | grep "Only"
Bash:
Сравните только имена файлов, а не содержимое файлов.
источник
ls
, используйтеfind
вместо этого!Как люди говорили вам здесь, вы можете использовать DIFF в различных вариантах использования. Или вы просто используете
dirdiff
вместо этого, что предназначено для того, что вы пытаетесь! :-)Но если вы хотите синхронизировать некоторые каталоги, вам действительно стоит взглянуть на них
rsync
.С уважением
источник
Если вы хотите сделать это через все подкаталоги, хороший способ сделать это:
Я предпочитаю использовать краткое, но вы можете оставить это, если хотите.
источник
for i in $(ls -1 directory1); do if (test -f directory2/$i) then echo $i; fi; done
источник
Это работает..
источник
непроверенные:
источник
У Денниса Уильямсона был хороший ответ , но мне нужно было сделать это рекурсивно. GNU findutils 4.7.0 не сортирует вывод, так что вот что я использовал
Чтобы сделать это только одним способом, и создать список файлов, я использовал это:
Чтобы это работало должным образом, ни $ dir1, ни $ dir2 не должны содержать завершающий слеш.
источник