Возможна ли символическая ссылка на жесткую ссылку (inode )каталога? (который будет указывать на одно и то же физическое местоположение после монтирования поверх этого каталога?)

tr, вероятно, лучший инструмент для этой работы. Попробуйте следующее

pbpaste | tr '\n' ' '

С вашей помощью я получаю следующий результат.

I cannot conceive that anybody will require multiplications at the rate of 40,000 or even 4,000 per hour...  -- F. H. Wales (1936) 
1
01.12.2021, 10:34
1 ответ

Вы не можете создавать жесткие ссылки на каталоги, так как это может привести к петлям в дереве каталогов, и в любом случае запись ..в каталогах не будет уникальной. Поскольку вы не можете сделать жесткую ссылку на каталог, вы также не можете сделать мягкую ссылку на жесткую ссылку на каталог.

Если только вы не исправите бинарно саму файловую систему , в этом случае вы можете сломать ее так или иначе. По крайней мере fsckбудет хрипеть на вас, и неизвестно, будет ли блевать и драйвер файловой системы.

Если у вас есть какие-то данные в /foo, и вам нужно сохранить доступ к этим данным, монтируя что-то еще в /foo, проще всего это сделать, переименовав /fooв /bar, создав новый пустой каталог /fooи смонтируйте другую файловую систему в этот новый /foo.

В Linux вы можете делать некоторые вещи с привязкой монтирования, например. после монтирования чего-либо на /fooвы можете привязать монтирование всего оригинала /к /bar, чтобы оригинал /fooотображался в /bar/foo. Но остальная часть /также будет видна там, так что у вас будут /bar/bin, /bar/etcи так далее.

# mkdir /foo /bar
# touch /foo/file-in-root-fs.txt
# mount -t tmpfs tmpfs /foo
# mount --bind / /bar
# ls -l /bar/foo
total 0
-rw-r--r-- 1 root root 0 Dec  1 14:36 file-in-root-fs.txt

Я попытался посмотреть, возможно ли просто смонтировать привязку одного каталога из-под нового монтирования, но не нашел способа сделать это.

Прямая попытка привязать сначала /fooк /bar, а затем установить поверх /foo, по-видимому, также скопировала новое крепление в оба места. (Хотя это на старом ядре.)

# mount --bind /foo /bar
# mount -t tmpfs tmpfs /foo
# ls -ldi /foo /bar
46378188 drwxrwxrwt 2 root root 40 Dec  1 14:37 /bar/
46378188 drwxrwxrwt 2 root root 40 Dec  1 14:37 /foo/
2
01.12.2021, 11:40

Теги

Похожие вопросы