Если вы хотите перечислить все файлы, кроме тех, которые находятся в определенном каталоге, скажем, notHere , здесь вы можете использовать команду find чтобы сделать это следующим образом
find . -path ./notHere -prune -o -type f -print
Объяснение:
.: каталог для начала find в
-path ./notHere: запустить правило, которое будет соответствовать пути ./notHere
-prune: предотвратить find по каталогу с текущим соответствием
-o: добавить or чтобы указать, что мы хотим, чтобы первое правило не совпадало
-type f: сопоставлять только файлы, а не, скажем, каталоги (удалите это, если вы также хотите видеть записи каталога)
-print: часто не требуется, поскольку это действие по умолчанию, но в некоторых версиях find все еще требуется, чтобы вы прямо сказали, что хотите, чтобы результат был распечатан
Вы упоминаете, что хотите получить другой вывод (в частности, ls -ll), а не только список имен файлов. find часто есть встроенная функция, чтобы помочь с этим, хотя и не те специфические опции для ls . Вы можете заменить флаг -print выше на -ls и посмотреть, достаточно ли близок для вас этот набор параметров ls :
find . -path ./notHere -prune -o -type f -ls
или, если этого недостаточно, вы можете find команду run, которую хотите, вместо того, чтобы пытаться обрабатывать вывод отдельно, например:
find . -path ./notHere -prune -o -type f -exec ls -ll {} +