Что означает "устаревший файловый дескриптор" в Linux? [закрытый]
скажем, у меня открыт терминал, и через этот терминал у меня есть cd ' ed в какой-то каталог. Через другой терминал я удаляю этот каталог и восстанавливаю его из идентичной резервной копии. Когда я пытаюсь vim файл из первого терминала, в том же каталоге, почему я получаю сообщение об ошибке устаревшего дескриптор файла? Что это значит? (На стороне примечание, Я обнаружил, что можно обойти эту проблему через cd $(pwd).)
1 ответ:
когда каталог удаляется, то дескриптор для этого каталога (и inodes для его содержимого) перерабатываются. Указатель, который ваша оболочка имеет на inode этого каталога (и его содержимое inodes) теперь больше не действительны. Когда каталог восстанавливается из резервной копии, старые индексы не (обязательно) повторно используется; каталог и его содержимое хранятся на случайных индексах. Единственное, что остается неизменным, это то, что родитель использует то же имя для восстановленного каталога (потому что вы сказали ему).
stale file handle сообщение, потому что вы запросили некоторые несуществующие данные.при выполнении
cdоперации, оболочка повторно оценивает местоположение inode любого назначения, которое вы ему даете. Теперь, когда ваша оболочка знает новый индекс для каталога (и новые индексы для его содержимого), будущие запросы на его содержимое будут действительны.
Comments