Чтобы немного расширить ответ Дейва:
Вы кажетесь хотите пересечение двух команд найти. Найти не делает набор манипуляций. Найдите траверсы вниз (или вверх в зависимости от того, как вы смотрите на него) набор путей и применяете выражение для каждого элемента, с которым он сталкивается. Требуемое по умолчанию действие заключается в том, чтобы напечатать путь найденных элементов, которые оценивают true для выражений. (Я считаю, что некоторые старые версии find требовали, чтобы вы явно добавляли выражение -print.) Он не сопоставляет результаты. Для анализа пересечений вы можете использовать такие инструменты, как diff, sdiff, comm.
Я предполагаю, что вы пытаетесь найти элементы с тем же именем в двух отдельных каталогах, а не в подкаталогах.
Предполагая Баш вы можете сделать что-то вроде
comm -12 <(find . -maxdepth 1 | sort) <(cd ~/bin/FilesDvorak/; find . -maxdepth 1 | sort)
Я считаю, что -И в командах найти почти всегда лишнее. Ex.
find . -type f ! -type d
То же самое,
find . -type f -and ! -type d
Также флаг -f вариант, чтобы добавить к путям к пересекающих. Я не верю, что это выражение. Пожалуйста, «найдите» для уточнения.
По крайней мере, для Linux и Solaris и CygWin нет теста «-f» для поиска. Возможно, есть на OSX. Если нет, это может быть частью вашей проблемы. – Eddie