Смонтируйте несколько папок, связанных вместе

У меня есть три папки: / ftp / A, / ftp / B, / ftp / C, но логически C является подкаталогом B, а B - подкаталогом A.

Я пытаюсь решить эту проблему с помощью сценария при запуске системы, который связывает папки. У меня есть текстовый файл в / ftp / dirFolder, где есть отношения между папками. Нравиться

B C
A B C
A B

Первый столбец - это отец, второй - сын, а третий - племянник. Сценарий такой:

case "$1" in
start)  while IFS=' ' read -r x y z
    do
        if [ -z "$z" ]; then
            mkdir -p /ftp/$x/$y
            mount -t none --bind /ftp/$y /ftp/$x/$y  > /dev/null 2>&1
        else
            mkdir -p /ftp/$x/$y/$z
            mount -t none --bind /ftp/$z /ftp/$x/$y/$z  > /dev/null 2>&1
        fi
    done < /ftp/dirFolder
    ;;
stop)   while IFS=' ' read -r x y z
    do
        if [ -z "$z" ]; then
            umount /ftp/$x/$y  > /dev/null 2>&1
        else
            umount /ftp/$x/$y/$z  > /dev/null 2>&1
        fi
    done < /ftp/dirFolder
    ;;

Проблема в том, что когда я запускаю скрипт, папки создаются и монтируются правильно, но если внутри C есть папка или файл, они не будут видны внутри / ftp / A / B / C, но они будут внутри / ftp / B / C.

Команда mount дает мне это:

/ftp/C on /ftp/B/C type none (rw,bind)
/ftp/C on /ftp/A/B/C type none (rw,bind)

Есть ли способ сделать папку C доступной как из папки A, так и из папки B?


person dvoran    schedule 11.09.2015    source источник


Ответы (1)


Решено, это была ошибка в файле dirFolder.

Сначала нужно смонтировать папку племянника в папку сына, затем смонтировать папку сына в папку отца.

Я был:

B C
A B C
A B

Должен быть:

B C
A B
A B C

Надеюсь, это кому-то поможет!

person dvoran    schedule 11.09.2015