Учитывая два абсолютных или относительных пути, A
и B
, я хочу выяснить, находится ли B
«внутри» каталога A
- не только в самом каталоге, но потенциально в подкаталоге , Я хотел бы сделать это без потенциально огромного количества fs.readdir
звонков.
Например, если A
равно /
и B
равно /foo/bar/baz
, должно быть совершенно очевидно, что B
находится в пределах A
; рекурсивный readdir
подход был бы крайне неэффективным.
Одна очевидная идея - преобразовать оба пути в абсолютную форму, а затем проверить, начинается ли строковая форма абсолютного пути B
с строковой формы A
. Однако есть две проблемы:
- Как преобразовать относительные пути в абсолютные?
- А как насчет символических ссылок и тому подобного?
Я приму ответы, которые делают вызовы утилитам Linux (кроме rm -rf
... которые технически могут быть использованы для решения проблемы) или сторонним библиотекам Node.