В Linux это можно сделать, размонтировав этот каталог в отдельном пространстве имен монтирования с флагом распространения монтирования, установленным на private:
# truncate -s 3G blob
# mkfs.ext4 blob
...
# mkdir dir
# echo below > dir/file
# mount blob dir
# echo above > dir/file
# cat dir/file
above
# unshare --mount --fork --propagation private sh -c 'umount dir; cat dir/file'
below
# cat dir/file
above
# unshare --mount --fork --propagation private sh -c '
umount dir
for f in dir/file /dev/fd/7; do
realpath --relative-to=. "$f"; cat "$f"
done
' 7
Примечание. :флаг --propagation private
используется по умолчанию, по крайней мере, в последних версияхunshare(1)
:я добавил его только для акцента.