Я хорошо знаю разницу между символическими и жесткими ссылками. Мне также известно об опасности создания жестких ссылок на каталоги .
Тем не менее, я настаиваю на создании жесткой ссылки на каталог и все его подкаталоги (в том же разделе).
Однако следующее не работает:
root@fab-ux:/home/fab-user/Public
# ln --directory ../Documents/CV/ CV
ln: failed to create hard link ‘CV’ => ‘../Documents/CV/’: Operation not permitted
Есть ли параметр ядра / файловой системы (работающий на EXT4), который позволит мне выполнить эту глупость?
Да, я могу смонтировать bind, могу жестко связать отдельные файлы с помощью задания cron, ... Но дело в том, что я хочу и физически, и только один каталог и все его файлы и удобство загрузки только определенных жестко связанных каталогов из моего публичного каталога в облако, а облачное программное обеспечение обнаруживает символические ссылки и не поддерживает их , и самое важное: Я работаю в Ubuntu ! Ни OSX, ни Windows: я хочу, чтобы система делала то, что я хочу!
Пока Вы остаетесь на текущем ядре (это - функция ядром скорее затем одна из файловой системы) нет почти никакого пути вокруг этого ограничений.
Ограничения жестких ссылок
Предотвратить циклы в файловой системе и сохранить интерпретацию
..
последовательный (родительский каталог), много современных операционных систем не позволяют жесткие ссылки на каталоги. System V UNIX позволила им, но только у суперпользователя было разрешение сделать такие ссылки.
... Соединение с каталогом ограничивается суперпользователем в большинстве исторических реализаций, потому что эта возможность может произвести циклы в файловой иерархии или в других отношениях поврежденный файловая система. Этот объем POSIX.1-2008 продолжает ту философию путем запрещения ссылки (), и удалите связь () с выполнением этого. Другие функции могли сделать это, если бы конструктор разработал такое расширение...
Поскольку больше нет системного вызова как link()
то, которые не делают, проверяет oldpath быть регулярным файлом, единственный выход может создавать подобную функцию к linkat () выполнение его Ваш желаемый путь.
Вы не можете создать жесткие ссылки на каталоги в Linux. Я услышал, что OSX позволяет это, чтобы машина времени использовала, но не Linux. Самое близкое, которое можно сделать, cp -l
, который создаст новое дерево каталогов, зеркально отражающих исходную, но жесткую ссылку все регулярные файлы.