Как Linux обрабатывает команду перемещения

Как Linux обрабатывает команду перемещения под капотом?

Скажем, я перемещаю свой домашний dir

/home/me

и я перемещаю это в другой каталог

/home/foo/me

Как находятся все файлы и пути каталогов под me измененный? Я знаю мой Desktop dir под me теперь /home/foo/me/Desktop а также Documents /home/foo/me/Documents но делает файловую систему, явно обновляют каждый путь под me к отразить изменение? Это не звучит очень эффективным, и это - вероятно, не это.

Где я могу получить больше информации об этом?

12
задан 13 March 2014 в 13:24

2 ответа

Понять, как это перемещает папки, Вы, возможно, должны понять немного о файловой системе в соответствии с Linux. Каждый регистрируют, и папки хранятся как часть структуры данных, названной" inode". Каждый файл имеет inode число, папки - также.

представление To inode Вашей папки, используйте команду ls -ial foldername. Первый столбец показывает inode количество файла. Для каждой папки существует два уникальных имени . и .., представляя собственный каталог, и родительский каталог соответственно.

можно попытаться делать эксперимент для перемещения, каталог (скажите,/home/me/source) с подкаталогами и файлами к другому каталогу (например,/home/me/somewhere/else). inode количество/home/me/source и всего его содержания остается тем же прежде и после перемещения. Единственной разницей является inode количество .., который первоначально совместно использует inode количество/home/me и теперь становится inode количеством/home/me/somewhere/else. В простой формулировке Linux обновляет ссылку на источник каталога , и затем это сделано.

содержание на жестком диске не изменяется так или иначе, только индекс inode обновляется, когда папка перемещена. Это, конечно, не случай при перемещении папки в различное физическое местоположение.

21
ответ дан 16 November 2019 в 14:22

Если Вы интересуетесь тем, как программы такой как mv и cp работа, помните, что они - открытый исходный код, и можно получить самое точное объяснение путем прочтения кода. Здесь имеет ссылки на все базовые утилиты. А именно, можно найти мВ здесь

3
ответ дан 16 November 2019 в 14:22

Другие вопросы по тегам:

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