Похоже, вы спрашиваете об инодах и суперблоке. См.: http://www.linfo.org/superblock и en.wikipedia.org/wiki/Inode
. Файловые системы не нуждаются в «мастер-файле» для отслеживать все файлы и каталоги, содержащиеся внутри, как таковые. Итак, я бы сказал, что нет "файла, обычно присутствующего в системе Linux, который содержит информацию о структуре каталогов и файлах, содержащихся в этих каталогах".
Однако благодаря использованию индексных дескрипторов и суперблока файловые системы отслеживают все файлы и каталоги. Но распределенным, нецентрализованным образом.
Вы можете передать полный путь к файлу конфигурации во вложенный сценарий. Например:
#!/bin/bash
. ./config
./sub-script ./config
Подсценарий может сделать что-то вроде этого:
cfg="$1"
shift
. "$cfg"
Вы даже можете установить значение по умолчанию для $ cfg
, на всякий случай $ 1
пусто.
cfg=${1:-/path/to/default/config}
Если вы можете настроить свой сценарий таким образом
#!/bin/bash
. config
. /path/to/sub-script
Любые переменные, инициализированные в config
, должны стать доступными для основного сценария, а любые скрипты, исходящие от него.
Похоже, ваш сценарий запускал новый неинтерактивный процесс оболочки, переменные оболочки, инициализированные в родительском сценарии, были бы недоступны, но экспортированные переменные среды должны быть доступны новому дочернему процессу.
Вы можете экспортировать
свои переменные:
VAR=foo
export VAR
или:
export VAR=foo
Однако эти переменные будут видны в среде всех подпроцессов.