Это может быть O (n). Классические файловые системы Unix, основанные на старой файловой системе BSD fast school и т. П., Хранят файлы в виде номеров инодов, а их имена назначаются на уровне каталогов, а не на уровне файлов. Это позволяет вам иметь один и тот же файл в нескольких местах одновременно через жесткие ссылки. Таким образом, «каталог» в большинстве систем Unix - это просто файл, в котором перечислены имена файлов и номера узлов для всех файлов, хранящихся «в» этом каталоге.
Поиск определенного имени файла в каталоге означает просто открытие этого файла каталога и его анализ до тех пор, пока вы не найдете запись в имени файла.
Конечно, в наши дни для систем Unix доступно множество различных файловых систем, и некоторые из них будут иметь совершенно различную внутреннюю семантику для поиска файлов, поэтому нет единого «правильного» ответа.