Здесь есть принципиальная разница. «Foo» - это файл в исходном смысле, но он может действовать как образ файловой системы (то есть эквивалент всего жесткого диска, а не только файла). Ваш "foo" может содержать все дерево каталогов. Это используется во многих случаях:
Другая концепция - это монтирование «привязки», которое перемонтирует существующий каталог в другом месте. Очень полезно для переназначения вашей структуры.Например, у вас есть сценарий, который что-то делает с / datadrive / user / foo, но вы изменили свои каталоги и точки монтирования, и теперь он находится в / mnt / data / foo. Нет проблем, просто привяжите второй к первому. Жесткие ссылки могут работать, но только в пределах одной файловой системы (и они более опасны и постоянны). Вы также можете «переопределить» структуру каталогов таким образом. Например, вы можете просто смонтировать другой / usr поверх текущего и использовать другие установленные программы. Варианты бесконечны.